[BZOJ2134]单选错位(概率期望)

来源:互联网 发布:刷天猫搜索流量软件 编辑:程序博客网 时间:2024/05/16 09:47

题目描述

传送门

题解

答案就是每一位和前面一位答案相同的概率和(权值为1)
也就是sigma (1/a(i-1)) * (1/a(i)) * min(a(i-1),a(i))

代码

#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;#define N 10000005int n,A,B,C;int a[N];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;    a[0]=a[n];    for (int i=1;i<=n;++i)        ans+=(1/(double)a[i-1])*(1/(double)a[i])*(double)min(a[i-1],a[i]);    printf("%.3lf\n",ans);}
0 0
原创粉丝点击