Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 6547 | Accepted: 2734 |
Description
Input
Output
Sample Input
4 5 -1
Sample Output
21 39
Source
和http://blog.csdn.net/sr_19930829/article/details/38108871几乎是一模一样的。考虑n=0的情况,要不然runtime error- - !
代码:
#include <iostream> #define LL long long using namespace std; int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } LL power(LL p,LL n) { LL sum=1; while(n) { if(n&1) sum*=p; p*=p; n/=2; } return sum; } int main() { int n; while(cin>>n&&n!=-1) { if(n==0)//考虑n等于0的情况。。 { cout<<0<<endl; continue; } LL ans=0; for(int i=1;i<=n;i++) ans+=power(3,gcd(i,n)); if(n&1) ans+=n*power(3,n/2+1); else ans+=(power(3,n/2+1)+power(3,n/2))*(n/2); ans/=n*2; cout<<ans<<endl; } return 0; }
[ACM] POJ 1286 Necklace of Beads (Polya计数,直接套公式),布布扣,bubuko.com
[ACM] POJ 1286 Necklace of Beads (Polya计数,直接套公式)
原文地址:http://blog.csdn.net/sr_19930829/article/details/38109823