HDOJ 5753 (2016多校联合训练 Training Contest 3) Permutation Bo

来源:互联网 发布:世界地图gis数据 编辑:程序博客网 时间:2024/05/16 15:00

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5753


求总权值的期望,我们可以分到每一位进行计算,考虑到2~n-1每一位我们需要观察它左边的那个数和右边的那个数,仔细想,三个数,要随机排列的话,一共有3*2*1 = 6种排列方式,但是只有两种(最大的排中间)才是有效的,也就是说所有的组合里面我们只有1/3的值是有效的,所以对总权值的贡献就是其权值的1/3,再来考虑第1位和第n位,我们相当于把两个数进行排列,一共有2*1 = 2中排列方式,但是只有一种菜是有效的,所以对总权值的贡献就是其权值的1/2.

#include <cstdio>const int maxn = 1000+10;int c[maxn];int main(){int n;while(scanf("%d", &n) !=EOF){for(int i=1; i<=n; i++) scanf("%d", &c[i]);if(n == 1) printf("%.6lf\n", (double)c[1]);else{double ans = (double)(c[1]+c[n])/2;for(int i=2; i<=n-1; i++) ans += (double)c[i]/3;printf("%.6lf\n", ans);}}}


0 0