题意
Beads of red, blue or green colors are connected together into a circular necklace of n beads ( n < 24 ). If the repetitions that are produced by rotation around the center of the circular necklace or reflection to the axis of symmetry are all neglected, how many different forms of the necklace are there?
注意考虑对称翻转。
题解
Polya定理
代码
#include<cstdio>
#include<algorithm>
using namespace std;
typedef double db;
typedef long long ll;
typedef unsigned long long ull;
const int nmax = 1e6+7;
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3f;
const ull p = 67;
const ull MOD = 1610612741;
ll n,ans;
ll pow(ll t,ll b = 3ll){ return b * (t == 0?1ll:pow(t-1));}
int main(){
while(scanf("%lld",&n)!=EOF && n !=-1){
if(n == 0){ printf("0\n"); continue;}
ans = 0;
for(int i = 1;i<=n;++i)ans += pow(__gcd(n,1ll*i)-1);
ans = ans / n;
ans += (pow((n+1)/2-1) + pow(n/2+1-1))/2;
printf("%lld\n",ans/2);
}
return 0;
}