2 条题解
-
0
题解
#include<bits/stdc++.h> using namespace std; typedef long long LL; const LL P=200907; LL qpow(LL a, LL b, LL c) { LL ret = 1 % c; a %= c; for (; b; b >>= 1, a = a * a % c) if (b & 1) ret = ret * a % c; return ret; } int main() { int T; scanf("%d", &T); while (T--) { LL a1, a2, a3, k; scanf("%lld%lld%lld%lld", &a1, &a2, &a3, &k); if (a2 - a1 == a3 - a2) { // 等差数列 LL d = a2 - a1; printf("%lld\n", (a1 + (k - 1) * d % P) % P); } else { // 等比数列 LL q = a2 / a1; printf("%lld\n", a1 * qpow(q, k - 1, P) % P); } } return 0; } -
0
#include<bits/stdc++.h> using namespace std; typedef long long LL; const LL P=200907; LL qpow(LL a,LL b,LL c) { LL ret=1%c;a%=c; for(;b;b>>=1,a=a*a%c)if(b&1)ret=ret*a%c; return ret; } int main() { int T;scanf("%d",&T); while(T--) { LL a1,a2,a3,k;scanf("%lld%lld%lld%lld",&a1,&a2,&a3,&k); if(a2-a1==a3-a2) { LL d=a2-a1; printf("%lld\n",(a1+(k-1)*d%P)%P); } else { LL q=a2/a1; printf("%lld\n", a1*qpow(q,k-1,P)%P); } } return 0; }
- 1
信息
- ID
- 1759
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 5
- 标签
- 递交数
- 139
- 已通过
- 57
- 上传者