Niu Ke - Poção para trapacear

Niu Ke - Poção para trapacear

Poção para trapacear

Título

É muito simples julgar xax ^ {a}xayby ^ {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;
}

Acho que você gosta

Origin blog.csdn.net/qq_45964820/article/details/108952216
Recomendado
Clasificación