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) 编辑 收藏 举报