Niu Ke - Poção para trapacear
Título
É muito simples julgar xax ^ {a}xa和yby ^ {b}YSe b é igual. Mas de acordo com o título, você encontraráxax ^ {a}xa é muito grande e precisa ser modulado, mas receio que os dados sejam alterados após o módulo e os dois números não sejam iguais. Na verdade, é suficiente medir o módulo duas vezes para que o julgamento não dê errado .
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod1 = 1e9 + 7;
const ll mod2 = 1e9 + 9;
ll fastpow(ll a, ll n, ll k){
ll res = 1, base = a;
while(n){
if(n & 1)
res = (res * base) % k;
base = (base * base) % k;
n >>= 1;
}
return res;
}
int main(){
ll t;
cin >> t;
while(t--){
ll a, b, c, d;
cin >> a >> b >> c >> d;
ll x1, y1, x2, y2;
x1 = fastpow(a, b, mod1);
y1 = fastpow(c, d, mod1);
x2 = fastpow(a, b, mod2);
y2 = fastpow(c, d, mod2);
if(x1 == y1 && x2 == y2)
puts("Yes");
else
puts("No");
}
return 0;
}