B. Buildings(手镯问题)

思路:先求出不同种类墙的数量,然后就是一个裸的手镯问题。
手镯问题如下:B. Buildings(手镯问题)_第1张图片

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;
}

你可能感兴趣的:(Codeforces,pupil,基础数论)