标签:
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 7874 | Accepted: 3290 |
Description
Input
Output
Sample Input
4 5 -1
Sample Output
21 39
/*Polya原理*/ #include <cstdio> #include <iostream> using namespace std; long long aaaa(long long a,long long b) { long long res=1,tmp=a; while(b) { if (b&1) res*=tmp; tmp*=tmp; b>>=1; } return res; } int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } int main() { int n; while ( ~scanf("%d", &n) && n != -1) { long long a = 0, b = 0; for (int i=0;i<n;i++) { a+=aaaa(3,gcd(i,n)); } if (n&1) b=(long long)n*aaaa(3,(n+1)/2); else b=(long long)n/2*(aaaa(3,n/2+1)+aaaa(3,n/2)); if (n==0) printf("0\n"); else printf("%lld\n",(a+b)/2/n); } return 0; }
POJ 1286 Necklace of Beads(项链的珠子)
标签:
原文地址:http://www.cnblogs.com/xiaoqi7/p/5903207.html