日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ4197 [Noi2015]寿司晚宴 【状压dp】

發布時間:2025/5/22 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ4197 [Noi2015]寿司晚宴 【状压dp】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接

BZOJ4197

題解

兩個人選的數都互質,意味著兩個人選擇了沒有交集的質因子集合
容易想到將兩個人所選的質因子集合作為狀態\(dp\)

\(n\)以內質數很多,但容易發現\(\sqrt{n} \approx 22.3\),這里邊的質數只有\(8\)個,而大于\(\sqrt{n}\)的質因子只會出現一次,可以特殊討論
我們先將所有數按最大質因子排序,如果最大質因子在那\(8\)個質數里邊,就記為\(1\)
我們設\(f[i][s1][s2]\)表示選了前\(i\)個數,兩人的質因子集合分別為\(s1\)\(s2\)的方案數
那么顯然
\[ans = \sum\limits_{s1 \cap s2 = \emptyset} f[n][s1][s2]\]

對于最大質因子不超過\(sqrt{n}\)的那些數,我們可以枚舉加入\(s1\)\(s2\)進行轉移
對于同一組最大質因數為\(x\)的數,我們先將\(f\)拷貝到\(g\)中,令\(g[0|1][i][s1][s2]\)表示該最大質因數加入誰中,選了前\(i\)個數,質因子集合為\(s1\)\(s2\)的方案數
求完后令\(f[i][s1][s2] = g[0][i][s1][s2] + g[1][i][s1][s2] - f[i][s1][s2]\),因為原來的\(f\)是不包含這一組數的方案,而兩個\(g\)都包含了不包含這一組數的方案數,要減去一個

由于空間問題,\(f\)\(g\)都要通過逆序轉移壓掉\(i\)那一維

然后就做完了

#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<map> #define Redge(u) for (int k = h[u],to; k; k = ed[k].nxt) #define REP(i,n) for (int i = 1; i <= (n); i++) #define mp(a,b) make_pair<int,int>(a,b) #define cls(s) memset(s,0,sizeof(s)) #define cp pair<int,int> #define LL long long int using namespace std; const int maxn = 505,maxm = 1 << 8,INF = 1000000000; inline int read(){int out = 0,flag = 1; char c = getchar();while (c < 48 || c > 57){if (c == '-') flag = -1; c = getchar();}while (c >= 48 && c <= 57){out = (out << 3) + (out << 1) + c - 48; c = getchar();}return out * flag; } int f[maxm][maxm],g[2][maxm][maxm]; int n,P,a[maxn]; int p[] = {2,3,5,7,11,13,17,19}; struct node{int x,p; }e[maxn]; inline bool operator <(const node& a,const node& b){return a.p < b.p; } int getp(int x){for (int i = 0; i < 8; i++)if (x % p[i] == 0) while (x % p[i] == 0) x /= p[i];return x; } void init(){for (int i = 2; i <= n; i++)for (int k = 0; k < 8; k++)if (i % p[k] == 0)a[i] |= (1 << k); } int main(){n = read(); P = read(); init();for (int i = 2; i <= n; i++) e[i].x = i,e[i].p = getp(i);sort(e + 2,e + 1 + n);f[0][0] = 1;for (int i = 2; i <= n; i++){int x = e[i].x,s = a[x];if (e[i].p == 1){for (int j = maxm - 1; ~j; j--){for (int k = maxm - 1; ~k; k--){int t = f[j][k];f[j][k | s] = (f[j][k | s] + t) % P;f[j | s][k] = (f[j | s][k] + t) % P;}}}else {for (int j = 0; j < maxm; j++)for (int k = 0; k < maxm; k++)g[0][j][k] = g[1][j][k] = f[j][k];int nxt = i;while (nxt < n && e[nxt + 1].p == e[i].p) nxt++;for (int l = 0; l <= nxt - i; l++){x = e[l + i].x,s = a[x];for (int j = maxm - 1; ~j; j--){for (int k = maxm - 1; ~k; k--){g[0][j | s][k] = (g[0][j | s][k] + g[0][j][k]) % P;g[1][j][k | s] = (g[1][j][k | s] + g[1][j][k]) % P;}}}i = nxt;for (int j = 0; j < maxm; j++)for (int k = 0; k < maxm; k++)f[j][k] = (((g[1][j][k] + g[0][j][k]) % P - f[j][k]) % P + P) % P;}}int ans = 0;for (int j = 0; j < maxm; j++)for (int k = 0; k < maxm; k++)if (!(j & k)) ans = (ans + f[j][k]) % P;printf("%d\n",ans);return 0; }

轉載于:https://www.cnblogs.com/Mychael/p/9157134.html

總結

以上是生活随笔為你收集整理的BZOJ4197 [Noi2015]寿司晚宴 【状压dp】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 就要日就要操 | 亚洲天堂不卡 | 精品人妻伦一二三区久 | 免费人成视频在线播放 | 一区二区三区不卡视频在线观看 | 午夜精品福利在线观看 | 51嘿嘿嘿国产精品伦理 | 魔性诱惑 | 操韩国美女 | 国产三级观看 | 国产日产精品一区 | 影音先锋婷婷 | 欧洲一区二区视频 | 国产精品一区二区小说 | 亚洲一区二区三区高清 | 国产成人精品免费看视频 | 欧美激情 在线 | 日本成人三级电影 | 国产欧美综合一区二区三区 | 在线观看免费视频国产 | 日韩一区二区不卡 | se日韩 | 高清av网址 | 法国经典free性复古xxxx | 亚洲成人一区在线 | 久久艹在线视频 | 日韩精品一二三 | 亚洲精品一二三四 | 自拍偷拍综合 | 久久成人a毛片免费观看网站 | 国产字幕在线观看 | 中文字幕人乱码中文字 | 男人天堂网在线视频 | 亚洲精品影视 | 欧美色图日韩 | 色多多导航 | 久久精品欧美一区二区三区麻豆 | 国产中文一区二区三区 | 奇米影视一区二区 | 波多野结衣黄色网址 | www日本免费 | 禁漫天堂黄漫画无遮挡观看 | 日本少妇高潮 | 国产精品久久久久久亚洲毛片 | 日韩乱码人妻无码中文字幕久久 | 欧美日韩午夜 | 精品人妻一区二区三区日产乱码 | 高h奶汁双性受1v1 | av综合久久 | 日本一区二区三区在线观看视频 | 亚洲第一综合网 | 亚州av成人 | 精品人妻一区二区色欲产成人 | 五月天中文字幕av | 先锋影音中文字幕 | 日本japanese丰满白浆 | 国产精品白浆一区二小说 | 成人一区二区av | 鸥美一级片| 97超碰在| 黄色美女毛片 | 精品视频久久久久久 | 涩涩小网站 | 高清国产午夜精品久久久久久 | 欧美一级片播放 | 色黄网站 | 伊人久久五月 | 亚洲成人系列 | 一级黄色片网址 | aa亚洲 | 精品国模一区二区三区欧美 | 伊人久久久 | 国产久久精品 | 97av超碰 | 国产精伦 | 欧美黄色录像带 | 亚洲综合久久av一区二区三区 | www.欧美在线观看 | 欧美一区久久 | 黄色大片视频 | 久久久精品亚洲 | 四虎av网站| 变态 另类 国产 亚洲 | 简单av在线 | 青草视频免费在线观看 | av免费观看网站 | 自拍偷拍20p | 中文字幕在线观看1 | 绯色av一区二区 | 高hhhhh| 国产主播自拍av | 人人曰 | 亚洲福利在线观看 | 好屌妞视频这里有精品 | 欧美二区视频 | 182午夜视频| 无码日韩精品视频 | 男人插女人免费视频 | 日韩欧美视频一区二区三区 |