【洛谷P1297】单选错位【期望】
题目大意:
题目链接:https://www.luogu.org/problemnew/show/P1297
有道单选题,第道题有个选项,在中随机选择一个选项写到第题的答案上。其中第题写道第一题的答案上。求做对题数的期望。
思路:
分类讨论一下。
- 当,那么显然随机的答案在第题也是随机的。期望为,也就是
- 当,只有的概率答案在中。所以期望为
- 当,由于随机的答案只在中,而第题正确答案有的概率在中,所以期望为
综上,答案就是
代码:
#include <cstdio>
#include <iostream>
using namespace std;
const int N=10000010;
int n,a[N];
double ans;
void init() //题目给出的生成数据的方法
{
int A,B,C;
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;
}
int main()
{
init();
a[n+1]=a[1];
/*printf("a数组如下:\n");
for (int i=1;i<=n;i++)
printf("%d ",a[i]);printf("\n\n");*/
for (int i=1;i<=n;i++)
ans+=1/(double)max(a[i],a[i+1]);
printf("%0.3lf",ans);
return 0;
}