题意:
有n个珠子围成的环,有t种颜色可以染这些珠子;
如果这个环可以旋转有几种办法;
如果这个环可以旋转,且可以翻转,有几种办法;
代码:(模板)
#include <cstdio>
#include <algorithm>
#define ll long long
using namespace std;
const int N = 55;
ll p[N];
int n, t;
int main() {
while(scanf("%d%d", &n, &t) == 2){
p[0] = 1;
for(int i = 1; i <= n; i++)
p[i] = p[i-1] * t;
ll a = 0, b = 0;
for(int i = 0; i < n; i++)
a += p[__gcd(i, n)];
if(n & 1)
b = n * p[(n + 1) >> 1];
else b = n * (p[n/2+1] + p[n/2]) / 2;
printf("%lld %lld\n", a/n, (a+b) / 2 / n);
}
return 0;
}