思路:先求出不同种类墙的数量,然后就是一个裸的手镯问题。
手镯问题如下:
int main()
{
//freopen("in.txt", "r", stdin);
ll m, n, c;
while (cin >> n >> m >> c)
{
ll num = quickmod(c, n*n, mod);
ll ans = 0;
f(i, 1, m)
{
ll d = gcd(i,m);
ans += quickmod(num, d,mod);
ans %= mod;
}
ans *= quickmod(m, mod-2,mod);
cout << ans%mod << endl;
}
return 0;
}