分元宵(牛客网)

2019-04-13 13:44发布

题目链接:点击打开链接
五个数据abcde就是求(a * b)^ (c * d) % e; 我卡98%的样例了,因为我一开始取模时候把四个数据都取模了,但是这样可能会把次方数模出问题,比如模成0或者什么什么的。反正只模底就好了。
#include using namespace std; typedef long long ll; const double eps = 1e-8; #define INF 100000000 typedef pair P; #define N 100001 const double e = exp(1.0); ll mod; ll power(ll a, ll b) { if(b == 0) return 0; ll ans = 1; a %= mod; while(b){ if(b & 1) ans = (ans * a) % mod; a = (a * a) % mod; b >>= 1; } return ans; } int main() { ll a, b, c, d; cin >> a >> b >> c >> d >> mod; a %= mod; b %= mod; // c %= mod; // d %= mod; printf("%lld", power(a * b, c * d)); return 0; }