题目描述
牛可乐有七个整数
并且他猜想
。但 牛可乐无法进行如此庞大的计算。
请验证 牛可乐的猜想是否成立。
输入描述:
第一行一个正整数 T,表示有 T 组数据。
每组数据输入一行七个整数
。
保证
保证不会出现指数和底数同为 0 的情况。
输出描述:
每组数据输出一行,若猜想成立,输出 Yes ,否则输出 No。
输入
2
1 1 4 5 1 4 258
114514 1919810 1 2 3 4 1
输出
Yes
No
说明
题解
- 直接计算会 TLE / MLE ,考虑在模意义下进行计算,若 ,则原式有概率成立,多选择一些模数以提高正确率。
AC-Code
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod = 1e9 + 7;
ll q_pow(ll a, ll n) {
ll res = 1;
while (n > 0) {
if (n & 1) res = ((res % mod) * a % mod) % mod;
a = (a * a) % mod;
n >>= 1;
}
return res % mod;
}
int main() {
int T; cin >> T;
while (T--) {
ll a, b, c, e, d, f, g; cin >> a >> b >> c >> d >> e >> f >> g;
if (q_pow(a % mod, d) + q_pow(b % mod, e) + q_pow(c % mod, f) == g % mod)
cout << "Yes" << endl;
else
cout << "No" << endl;
}
}