G题取1E9+7wa,取1E9+9等一些其他的值ac
先上自己的代码
这是最初写的代码,MOD取值1E9+7
#include <cstdio> using namespace std; typedef long long ll; const int MOD = 1E9+7; ll qpow_m(ll a, ll b) { if(a == 0) return 0; if(b == 0) return 1; ll ans = 1; ll base = a % MOD; while(b) { if(b & 1) ans = (ans * base) % MOD; base = (base * base) % MOD; b >>= 1; } return ans; } int main() { int t; while(~scanf("%d", &t)) { ll a, b, c, d, e, f, g; while(t--) { scanf("%lld %lld %lld %lld %lld %lld %lld", &a, &b, &c, &d, &e, &f, &g); printf(((qpow_m(a, d) + qpow_m(b, e) + qpow_m(c, f)) % MOD == g % MOD)?"Yes\n":"No\n"); } } return 0; }
然后非常快乐地WA了
几次修改后依然WA,便改变了MOD的取值,MOD取1E9+9时AC了
赛后尝试了若干个MOD的值,包括1E9+1 +3 +5 +9 +11、1E9-1 -3 -5等等……均能AC
但取1E9+7时case通过率为0.00% 取998244353也WA了 也是0%
蒟蒻想知道原因(小声