您的位置:首页 > 其它

bzoj2134: 单选错位

2017-03-24 09:44 246 查看

链接

  http://www.lydsy.com/JudgeOnline/problem.php?id=2134

题解

  首先题与题之间是独立的,所以最后的总期望肯定就是每道题的期望之和。

  考虑一道有a个选项的题写到了一个有b个选项的题上对答案的贡献。

  当a≤b时,答对的概率是1b,共有a种情形,每种情形出现的概率是1a,因为答对的贡献是1,所以期望=a×1b×1a

  当a>b时,对于前b个选项,答对的概率是1b,[b+1,a]这些选项,答对的概率是0,共有a种情形,每种情形的概率1a,因此对答案的贡献是b×1b×1a

  显然,最后的答案是∑min(a,b)ab

  期望还是不熟啊….

代码

//water problem
#include <cstdio>
#include <algorithm>
using namespace std;
int a[10000010], A, B, C, N;
int main()
{
int i;
double ans=0.0;
scanf("%d%d%d%d%d",&N,&A,&B,&C,a+1);
for(i=2;i<=N;i++)a[i]=((long long)a[i-1]*A+B)%100000001;
for(i=1;i<=N;i++)a[i]=a[i]%C+1;
for(i=2;i<=N;i++)
{
ans+=(double)min(a[i-1],a[i])/a[i]/a[i-1];
}
ans+=(double)min(a
,a[1])/a[1]/a
;
printf("%.3lf",ans);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: