contest/85/C
#include<bits/stdc++.h> #define LL long long using namespace std; LL quick_pow(LL a,LL b,LL m){ LL ans = 1; if(b==0) return 0; a=a%m; while(b>0){ if(b&1){ ans=(ans*a)%m; } a=(a*a)%m; b>>=1; } return ans; } int main(){ LL a,b,c,d, m; LL ans,res; cin>>a>>b>>c>>d>>m; ans=(a%m)*(b%m)%m; res=c*d; cout<<quick_pow(ans,res,m); return 0; }
取余原理:(a * b) % p = (a % p * b % p) % p
快速幂原理:根据幂的二进制将运算拆分为多个运算,运算次数即为幂的位数。
结合现实,当桌子和碗的乘积为0时,结果应为0,而不是1。