解题思路:我也看不懂
注意事项:
参考代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=200907;
// 计算等差数列的第k项:a + (k-1)*d % N
ll dengcha(ll a1, ll a2) {
ll res = 0;
a2 %= N; // 防止a2过大
while (a1 > 0) {
if (a1 % 2 == 1) {
res = (res + a2) % N;
}
a2 = (a2 * 2) % N;
a1 /= 2;
}
return res;
}
// 快速幂计算等比数列的第k项:q^(k-1) % N
ll dengbi(ll a1, ll a2) {
ll res = 1;
a2 %= N; // 防止a2过大
while (a1 > 0) {
if (a1 % 2 == 1) {
res = (res * a2) % N;
}
a2 = (a2 * a2) % N;
a1 /= 2;
}
return res;
}
int main() {
ll t;
cin >> t;
while (t--) {
ll x, y, z, k;
cin >> x >> y >> z >> k;
ll a = x;
ll d = y - x;
ll q = y / x;
ll ak;
if (z - y == y - x) {
// 等差数列:a + (k-1)*d
ak = (a + dengcha(k-1, d)) % N;
} else {
// 等比数列:a * q^(k-1)
ak = (a * dengbi(k-1, q)) % N;
}
cout << ak << endl;
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复