日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Divan and Kostomuksha (H version) dp,gcd(2300)

發(fā)布時間:2025/3/19 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Divan and Kostomuksha (H version) dp,gcd(2300) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


題意 :

  • 如上題,只是aia_iai?的范圍從2?1052*10^52?105變成2?1072*10^72?107

思路 :

  • easyversioneasyversioneasyversion的復(fù)雜度是O(NlogN)O(NlogN)O(NlogN),瓶頸在于cnt和dp
  • 考慮dp[4]dp[4]dp[4]的轉(zhuǎn)移,它可以從dp[1]dp[1]dp[1]dp[2]dp[2]dp[2]轉(zhuǎn)移而來,我們發(fā)現(xiàn)顯然從dp[2]dp[2]dp[2]轉(zhuǎn)移過來一定更優(yōu),因為1也是2的約數(shù),dp[2]dp[2]dp[2]是從dp[1]dp[1]dp[1]轉(zhuǎn)移而來的
  • 對于dp[i?j]dp[i*j]dp[i?j],如果j∣ij |iji,從dp[i]dp[i]dp[i]轉(zhuǎn)移肯定比dp[j]dp[j]dp[j]更優(yōu),也就是說dp轉(zhuǎn)移的循環(huán)中第二重循環(huán)從“i的所有倍數(shù)”優(yōu)化成了“i的所有質(zhì)數(shù)倍數(shù)”,這樣就可以讓每個dp狀態(tài)從少得多的狀態(tài)轉(zhuǎn)移過來,且最優(yōu)的狀態(tài)轉(zhuǎn)移一定包含于其中
  • 這樣優(yōu)化后發(fā)現(xiàn)cnt也只需要算出某個數(shù)字的質(zhì)數(shù)倍數(shù)字的數(shù)量,因此這里也可以優(yōu)化,但cnt求的過程中要注意枚舉順序
#include <iostream> #include <algorithm> #include <cstring> #include <vector> #include <unordered_set> #include <math.h> #define endl '\n' #define fi first #define se second #define pb push_backusing namespace std; using ll = long long;typedef pair<int, int> PII;const int N = 2e7 + 10;ll a[N], cnt[N]; ll dp[N]; int primes[N / 10], idx; bool st[N];void get_primes(int n) {st[0] = st[1] = true;for (int i = 2; i <= n; i ++ ){if (!st[i]) primes[idx ++ ] = i;for (int j = 0; i * primes[j] <= n; j ++ ){st[i * primes[j]] = true;if (i % primes[j] == 0) break;}} }int main() {cin.tie(nullptr) -> sync_with_stdio(false);get_primes(N - 1);int n; cin >> n;for (int i = 1, x; i <= n && cin >> x; i ++ ) ++ cnt[x];for (int i = 0; i < idx; i ++ )for (int j = (N - 1) / primes[i] ; j >= 1; j -- )cnt[j] += cnt[primes[i] * j];dp[1] = n;ll ans =0 ;for (int i = 1; i < N ; i ++ ){for (int j = 0; primes[j] * i < N; j ++ ){int ij = i * primes[j];dp[ij] = max(dp[ij], dp[i] + (ij - i) * cnt[ij]);}ans = max(ans, dp[i]);}cout << ans << endl;return 0; }

總結(jié)

以上是生活随笔為你收集整理的Divan and Kostomuksha (H version) dp,gcd(2300)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。