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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BZOJ 1488 Luogu P4727 [HNOI2009]图的同构 (群论、Burnside引理、组合计数)

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ 1488 Luogu P4727 [HNOI2009]图的同构 (群论、Burnside引理、组合计数) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接

(Luogu) https://www.luogu.org/problem/P4727
(BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=1488

題解

Burnside引理經典題。

首先考慮一個\(O(n!\times poly(n))\)暴力: 枚舉點的置換,然后計算在置換下保持不變的圖的個數。
把置換拆成若干個輪換。

(1) 考慮輪換內部: 假設一輪換為\((a_1\ a_2\ ...\ a_n)\), 那么\((a_1,a_2),(a_2,a_3),...,(a_n,a_1)\)這些邊要么都存在要么都不存在;\((a_1,a_3),(a_2,a_4),...,(a_{n-1},a_{1}),(a_{n},a_2)\)這些邊也要么都存在要么都不存在;一般地說,對于任何一個\(d\), 所有的\((a_i,a_{(i+d)\mod n})\)這些邊要么都存在要么都不存在,因此輪換內部一共有\(2^{\frac{n}{2}}\)種方案。

(2) 考慮輪換之間: 假設兩輪換分別為\((a_1,a_2,...,a_n),(b_1,b_2,...,b_m)\)則有: \((a_1,b_1),(a_2,b_2),...(a_i,b_i)\)這些邊存在情況都相同;\((a_1,b_2),(a_2,b_3),...,(a_i,b_{i+1})\)這些邊存在情況都相同;以此類推,可以得到兩輪換之間共有\(2^{\gcd(n,m)}\)種方案。
所有的置換方案數相加,最后除以置換總數\(n!\).

然后現在考慮\(n\le 60\)怎么辦。
\(n\le 60\)時,我們可以枚舉拆分數(\(60\)的拆分數約為百萬級別)。
已知一個拆分的方案(方案是指一個無標號序列\(a\)滿足\(\sum a_i=n\),其長度為\(cnt\)),它對應了多少個不同排列的輪換分拆?
首先,長度為\(L\)的輪換共\((L-1)!\)種。
然后我們要處理標號問題。
假設輪換之間是有區別的,那么標號方案數為\(\frac{n!}{\prod^{cnt}_{i=1}a_i!}\).
但是長度相等的輪換之間沒有區別,所以除以\(\prod {num_i!}\), 其中\(num_i\)表示\(i\)\(a\)中的出現次數。
最后乘起來得到\(\frac{n!}{\prod^{cnt}_{i=1}a_i\prod^n_{i=1}num_i!}\)
累加即可。

時間復雜度?
枚舉所有拆分方案,求\(cnt^2\)之和,我用程序計算得當\(n=60\)時該值約為\(2.7\times 10^8\).

代碼

#include<cstdio> #include<cstdlib> #include<cstring> #include<cassert> #include<iostream> #define llong long long using namespace std;inline int read() {int x=0; bool f=1; char c=getchar();for(;!isdigit(c);c=getchar()) if(c=='-') f=0;for(; isdigit(c);c=getchar()) x=(x<<3)+(x<<1)+(c^'0');if(f) return x;return -x; }const int N = 60; const int P = 997; llong fact[N+3],finv[N+3],inv[N+3]; llong pw2[N+3]; int a[N+3]; int num[N+3]; int gcd[N+3][N+3]; int n,cnt; llong ans;int GCD(int x,int y) {return y==0?x:GCD(y,x%y); }llong quickpow(llong x,llong y) {llong cur = x,ret = 1ll;for(int i=0; y; i++){if(y&(1ll<<i)) {y-=(1ll<<i); ret = ret*cur%P;}cur = cur*cur%P;}return ret; }llong calc() {llong ret = fact[n];for(int i=1; i<=cnt; i++){ret = ret*inv[a[i]]%P;}for(int i=1; i<=n; i++){ret = ret*finv[num[i]]%P;}for(int i=1; i<=cnt; i++){ret = ret*pw2[a[i]>>1]%P;}for(int i=1; i<=cnt; i++){for(int j=i+1; j<=cnt; j++){ret = ret*pw2[gcd[a[i]][a[j]]]%P;}}return ret; }void dfs(int sum) {if(sum==n){ans = (ans+calc())%P;return;}for(int i=a[cnt]; i+sum<=n; i++){cnt++; a[cnt] = i; num[i]++;dfs(i+sum);a[cnt] = 0; cnt--; num[i]--;} }int main() {pw2[0] = 1ll; for(int i=1; i<=N; i++) pw2[i] = (pw2[i-1]<<1)%P;fact[0] = 1ll; for(int i=1; i<=N; i++) fact[i] = fact[i-1]*i%P;finv[N] = quickpow(fact[N],P-2); for(int i=N-1; i>=0; i--) finv[i] = finv[i+1]*(i+1)%P;for(int i=1; i<=N; i++) inv[i] = finv[i]*fact[i-1]%P;for(int i=1; i<=N; i++) for(int j=1; j<=N; j++) gcd[i][j] = GCD(i,j);scanf("%d",&n);if(n==0) {printf("1"); return 0;}a[0] = 1; dfs(0);ans = ans*finv[n]%P;printf("%lld\n",ans);return 0; }

總結

以上是生活随笔為你收集整理的BZOJ 1488 Luogu P4727 [HNOI2009]图的同构 (群论、Burnside引理、组合计数)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久精品国产99国产精品 | 欧洲成人午夜精品无码区久久 | 久久一区二区三区视频 | 另类视频在线观看 | 宅男在线视频 | 国产色综合视频 | 天天狠天天插 | 开心激情站 | 欧美日韩成人一区二区三区 | www.麻豆av.com| 亚洲人妻一区二区 | 欧美网站免费 | 日日躁夜夜躁狠狠久久av | 亚洲国产va | 国产性xxx | 久草视频网站 | 日本一区高清 | 欧美综合视频在线 | 日韩av网址大全 | 在线精品一区二区 | 亚洲天堂国产 | 亚洲av无码精品色午夜 | 不卡欧美 | 91插插插插插插插插 | 成人靠逼视频 | 亚洲伦理影院 | 国产欧美日韩精品在线观看 | 147人体做爰大胆图片成人 | 日日草日日干 | 女人脱裤子让男人捅 | 午夜男人av | 国产第一页在线 | 日韩激情四射 | 播放灌醉水嫩大学生国内精品 | av中文在线观看 | 涩涩视频在线 | 成人欧美一区二区三区黑人孕妇 | 青青草91久久久久久久久 | 日韩精品成人免费观看视频 | 精品久久久久久久久久岛国gif | 欧美一级黄色录像 | 伊人青青草视频 | 欧美一区国产一区 | 操极品女神 | 高清乱码毛片入口 | 激情视频网站在线观看 | 国产第七页 | 国产视频a| 国内偷拍第一页 | 中文字幕人妻无码系列第三区 | 欧美一区二区三区免费视频 | 亚洲一级Av无码毛片久久精品 | 一级大片在线观看 | 亚洲欧美日韩网站 | 99久久久国产精品无码免费 | 亚洲干综合| 性生活免费网站 | 丝袜在线一区 | 91精品国产综合久久精品图片 | 日日操网站 | 亚洲成人午夜影院 | 9色在线视频 | 久久久久久久久久国产 | 亚洲国产精品无码专区 | 国产情侣自拍小视频 | 青青草综合在线 | 一区二区欧美在线 | 黄免费在线观看 | av收藏小四郎最新地址 | 亚洲成人网页 | 中文字幕精品国产 | 亚洲一区二区三区在线 | 日本熟妇毛茸茸丰满 | 欧洲久久久久 | 波多野结衣一级 | 欧美一区二区三区不卡视频 | 黄色成人在线播放 | 久操免费在线视频 | 欧美日韩一级二级 | 色七七桃花影院 | 特高潮videossexhd | 91影院在线观看 | 九一九色国产 | 亚洲av成人一区二区国产精品 | 国产三级91 | 国产精品第一 | 欧美性生交xxxxx久久久 | 亚洲图区欧美 | av成人在线看 | 午夜三级视频 | 免费视频网站在线观看入口 | 成人在线播放网站 | av青青草 | 国产精品毛片一区视频播 | 国产伦精品一区二区三区视频我 | 亚洲av综合色区无码一区爱av | 手机在线成人av | 在线色网站 | av资源在线免费观看 |