hdu_5753_Permutation Bo(找规律)

题目连接:hdu_5753_Permutation Bo

题意:

给你一个有n个数的数列c1~cn,h1~hn为1~n的排列,求ci[hi>hi-1  and  hi>hi+1]的期望和。

题解:

这题意思就是让你先列出一个hi的排列,然后如果满足(hi>hi-1  and  hi>hi+1)的值为1,那么c[i]这个值就能取,然后我们把第一个样例的全部情况列出来,模拟一下答案,发现公式就是(c[1]+c[n])/3+(c[2]+...+c[n-1])/2;

最后特判一下n=1和2的情况

 1 #include<cstdio>
 2 double a[1010];
 3 int main()
 4 {
 5     int n;
 6     while(~scanf("%d",&n))
 7     {
 8         for(int i=1;i<=n;i++)scanf("%lf",a+i);
 9         if(n==1){printf("%.6lf\n",a[1]);continue;}
10         if(n==2){printf("%.6lf\n",(a[1]+a[2])/2);continue;}
11         double ans=(a[1]+a[n])/2,tp=0;
12         for(int i=2;i<n;i++)tp+=a[i];
13         ans+=tp/3;
14         printf("%.6lf\n",ans);
15     }
16   return 0;
17 }
View Code

 

posted @ 2016-07-26 18:49  bin_gege  阅读(229)  评论(0编辑  收藏  举报