P1297 [国家集训队]单选错位

每道题对期望贡献可以单独计算。

因为它们不会互相影响。

显然一道题做对的概率=期望=\(\frac{min(n,m)}{nm}\)

#include<bits/stdc++.h>
using namespace std;
#define orz cout<<"lyakioi!!!!!!!!!!!!!!!!!"<<endl
inline int r(){int s=0,k=1;char c=getchar();while(!isdigit(c)){if(c=='-')k=-1;c=getchar();}while(isdigit(c)){s=s*10+c-'0';c=getchar();}return s*k;}
int n,A,B,C,a[12000001];
double t[12000001];
double ans;
int main()
{
	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,t[i]=a[i];
		
		
	for(int i=1;i<n;i++)
	ans+=min(t[i],t[i+1])*(1/t[i])*(1/t[i+1]);
	ans+=min(t[n],t[1])*(1/t[n])*(1/t[1]);
	printf("%.3lf",ans);
}
posted @ 2021-09-03 18:37  lei_yu  阅读(22)  评论(0编辑  收藏  举报