山东济南彤昌机械科技有限公司 山东济南江鹏工贸游有限公司

bzoj 2134 单选错位(期望)

 

【题目链接】

 

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

 

【题意】

 

    ai与ai+1相等得1分,求期望。

 

【思路】

 

    每个题的期望都是独立的。

    考虑a[i],若a[i]>a[i+1],则有(a[i+1]/a[i])的概率选到1..a[i]并有(1/a[i])的概率选对,同理a[i]<a[i+1]。则期望得分为1/max{ a[i],a[i+1] }。

 

【代码】

 

 1 #include<cstdio>
 2 #include<iostream>
 3 using namespace std;
 4 
 5 typedef long long ll;
 6 ll a[10000007],n,A,B,C;
 7  
 8 int main()
 9 {
10     scanf("%lld%lld%lld%lld%lld",&n,&A,&B,&C,&a[1]);
11     for(int i=2;i<=n;i++) a[i]=((ll)a[i-1]*A+B)%100000001;
12     for(int i=1;i<=n;i++) a[i]=a[i]%C+1;
13     a[0]=a[n];
14     double ans=0;
15     for(int i=1;i<=n;i++) ans+=1.0/(double)max(a[i],a[i-1]); 
16     printf("%.3lf",ans);
17     return 0;
18 }

 

posted on 2016-03-30 10:41  hahalidaxin  阅读(192)  评论(0编辑  收藏  举报