其他分享
首页 > 其他分享> > 洛谷 P1297 单选错位

洛谷 P1297 单选错位

作者:互联网

洛谷 P1297 单选错位

题目链接


题目大意
给 \(n\) 个单选题和每个单选题的选项个数 \(a_i\),假设每道题目都选择了正确选项但第 \(i\) 道题目的答案抄到了答题纸上的第 \(i+1\) 道题目的位置上,特别地,第 \(n\) 道题目的答案抄到了第 \(1\) 道题目的位置上。
求期望做对多少题目。


题解

\[ans\gets\sum_{i=1}^n\cfrac{\min(a_i,a_{i-1})}{a_i\times a_{i-1}} \]


代码

#include <cstdio>
#include <iostream>
#include <cmath>

using namespace std;

int n, A, B, C, a[10000005];
double ans;

void in()
{
    scanf("%d%d%d%d%d", &n, &A, &B, &C, a + 1);
    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;
}

void work()
{
    a[n + 1] = a[1];//第n道抄到了第1道
    for (int i = 2; i <= n + 1; i++)
        ans += (double)min(a[i], a[i - 1]) / (double)a[i] / (double)a[i - 1];
    printf("%.3lf", ans);
}

int main()
{
    in();
    work();
    return 0;
}

标签:选项,洛谷,min,d%,P1297,times,单选,题目,include
来源: https://www.cnblogs.com/cymrain/p/14397344.html