您的位置:首页 > 其它

HDU-5753-Permutation Bo(找规律)

2016-07-27 11:08 141 查看
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5753

题意:数列c1~cn,
 h1~hn为ci的1~n的排列,求ci[hi>hi-1  and  hi>hi+1]的期望和。

题解:

根据期望的线性性,我们可以分开考虑每个位置对答案的贡献。

可以发现当ii不在两边的时候和两端有六种大小关系,其中有两种是对答案有贡献的。

那么对答案的贡献就是\frac{c_i}{3}​3​​c​i​​​​。

在两端的话有两种大小关系,其中有一种对答案有贡献。

那么对答案的贡献就是\frac{c_i}{2}​2​​c​i​​​​。

复杂度是O(n)O(n)。

注意特判n=1n=1的情况。

#include <bits/stdc++.h>
using namespace std;
double a[1007];
int main()
{
int n;
while(~scanf("%d",&n))
{
for(int i=1;i<=n;i++)scanf("%lf",&a[i]);
if(n==1){printf("%.6lf\n",a[1]);continue;}
double ans=(a[1]+a
)/2,temp=0;
for(int i=2;i<n;i++)temp+=a[i];
ans+=temp/3;
printf("%.6lf\n",ans);
}
return 0;
}
/*
4
3 2 4 5
5
3 5 99 32 12
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: