2026-01-08 17:30:20
发布于:浙江
3阅读
0回复
0点赞
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
const int MAXN = 10000000; // 根据题目n的范围设定,通常n可达到1e7级别
int a[MAXN + 10]; // 存储每道题的选项数
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, A, B, C;
cin >> n >> A >> B >> C >> a[1];
// 生成数列a
for (int i = 2; i <= n; ++i) {
a[i] = ((long long)a[i-1] * A + B) % 100000001;
}
for (int i = 1; i <= n; ++i) {
a[i] = a[i] % C + 1;
}
// 计算期望
double expected = 0.0;
// 处理第1题:对应第n题的答案抄到第1题
expected += 1.0 / max(a[n], a[1]);
// 处理第2到第n题:对应第i-1题的答案抄到第i题
for (int i = 2; i <= n; ++i) {
expected += 1.0 / max(a[i-1], a[i]);
}
// 输出结果,保留三位小数
cout << fixed << setprecision(3) << expected << endl;
return 0;
}
)
这里空空如也





有帮助,赞一个