先上自己的代码
这是最初写的代码,MOD取值1E9+7
#include
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%
蒟蒻想知道原因(小声