POJ 1286 Necklaces of Beads (Burnside定理,有限制型)
生活随笔
收集整理的這篇文章主要介紹了
POJ 1286 Necklaces of Beads (Burnside定理,有限制型)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:http://vjudge.net/problem/viewProblem.action?id=11117
就是利用每種等價情形算出置換節之后算組合數
#include <stdio.h> #include <cstring> #include <cstdlib> #include <algorithm> #include <cmath>using namespace std; #define lson o<<1 #define rson o<<1|1 #define max(a,b) (a)>(b)?(a):(b) #define min(a,b) (a)<(b)?(a):(b) #define INF 200000000typedef long long ll; ll qpow(ll a,int k){ll ans=1;while(k>0){if(k&1)ans*=a;a*=a;k>>=1;}return ans; } int gcd(int a,int b){if(a==0)return b;return gcd(b%a,a); } ll rotation(int n){ll rot=3;for(int i=2;i<=n;i++){rot+=qpow(3LL,gcd(i,n));}return rot; } ll reflection(int n){ll ref=0;if(n&1){int cir=n/2+1;ref=qpow(3LL,cir)*n;}else{ref=(ll)(n/2)*qpow(3LL,n/2);ref+=(ll)(n/2)*qpow(3LL,1+n/2);}return ref; } int main(){int n;while(~scanf("%d",&n) && n+1){ll ans;if(!n)ans=0;else ans=(rotation(n)+reflection(n))/(2*n);printf("%I64d\n",ans);}return 0; }?
?
轉載于:https://www.cnblogs.com/Ixia/p/3913842.html
總結
以上是生活随笔為你收集整理的POJ 1286 Necklaces of Beads (Burnside定理,有限制型)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: echarts中geoCoordMap世
- 下一篇: 简单暴力高效率的OSM全球地图