hdu 5753 Permutation Bo

这里是一个比较简单的问题:考虑每个数对和的贡献。先考虑数列两端的值,两端的摆放的值总计有2种,比如左端:0,大,小;0,小,大;有1/2的贡献度。右端同理。

中间的书总计有6种可能。小,中,大。其中有两种对答案有贡献,即1/3的贡献度。加和计算可得到答案。

Permutation Bo

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 693    Accepted Submission(s): 421
Special Judge

Problem Description

There are two sequences h1∼hn and c1∼cn. h1∼hn is a permutation of 1∼n. particularly, h0=hn+1=0.

We define the expression [condition] is 1 when condition is True,is 0 when condition is False.

Define the function f(h)=∑ni=1ci[hi>hi−1  and  hi>hi+1]

Bo have gotten the value of c1∼cn, and he wants to know the expected value of f(h).

Input

This problem has multi test cases(no more than 12).

For each test case, the first line contains a non-negative integer n(1≤n≤1000), second line contains n non-negative integer ci(0≤ci≤1000).

Output

For each test cases print a decimal - the expectation of f(h).

If the absolute error between your answer and the standard answer is no more than 10−4, your solution will be accepted.

Sample Input

4
3 2 4 5
5
3 5 99 32 12

Sample Output

6.000000
52.833333

Author

绍兴一中

#include<iostream>
#include<stdio.h>
using namespace std;
int a[10005];
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        for(int i=0; i<n; i++)
        {
            scanf("%d",a+i);
        }
        if(n==1)
        {
            printf("%.6lf\n",(a[0]+0.0));
            continue;
        }
        if(n==2)
        {
            printf("%.6lf\n",(a[0]+0.0+a[1])/2);
            continue;
        }
        double ans=0.0;
        ans=(a[0]+0.0+a[n-1]+0.0);
        ans/=2;
        double tmp=0.0;
        for(int i=1; i<n-1; i++)
        {
            tmp+=(a[i]+0.0);
        }
        tmp/=3;
        ans+=tmp;
        printf("%.6lf\n",ans);

    }
    return 0;

}

时间: 2024-11-06 16:21:52

hdu 5753 Permutation Bo的相关文章

【数学】HDU 5753 Permutation Bo

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5753 题目大意: 两个序列h和c,h为1~n的乱序.h[0]=h[n+1]=0,[A]表示A为真则为1,假为0. 函数f(h)=(i=1~n)∑ci[hi>hi−1 && hi>hi+1] 现在给定c的值,求f(h)的期望. 题目思路: [数学] 头尾的概率为1/2,中间的概率为1/3,直接求和. 1 // 2 //by coolxxx 3 // 4 #include<io

HDU5753 Permutation Bo(2016多校训练)

Permutation Bo Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 777    Accepted Submission(s): 468Special Judge Problem Description There are two sequences h1∼hn and c1∼cn . h1∼hn is a permutat

hdu 5758 Explorer Bo(树形dp)

题目链接:hdu 5758 Explorer Bo 题意: 给一棵n个点的树,每次任选两个点,然后覆盖两点间的所有边,要求以最少的次数覆盖所有的边,在保证次数最少的情况下要求覆盖边的总次数最小 题解: 详细题解传送门 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=(a);i<=(b);++i) 3 using namespace std; 4 5 const int N=1e5+7; 6 int t,n,x,y,sz[N],

hdu 2583 permutation 动态规划

Problem Description Permutation plays a very important role in Combinatorics. For example ,1 2 3 4  5 and 1 3 5 4 2 are both 5-permutations. As everyone's known, the number of n-permutations is n!. According to their magnitude relatives ,if we insert

HDU 4917 Permutation

题意: 一个序列p1.p2.p3--pn是由1.2.3--n这些数字组成的  现给出一些条件pi<pj  问满足所有条件的排列的个数 思路: 很容易想到用一条有向的线连接所有的pi和pj  那么就构成了有向无环图(题中说有解所以无环) 又因为pi各不相同  那么题目就变成了有向无环图的拓扑排序的种类数 题目中边数较少  所以可能出现不连通情况  我们先讨论一个连通集合内拓扑排序的种类数 题目中m较小  可以利用状压后的记忆化搜索解决 现在考虑如果知道了A和B两个集合各自的种类数  如果把它们合起

HDU 4917 Permutation 拓扑排序的计数

题意: 一个有n个数的排列,给你一些位置上数字的大小关系.求合法的排列有多少种. 思路: 数字的大小关系可以看做是一条有向边,这样以每个位置当点,就可以把整个排列当做一张有向图.而且题目保证有解,所以只一张有向无环图.这样子,我们就可以把排列计数的问题转化为一个图的拓扑排序计数问题. 拓扑排序的做法可以参见ZJU1346 . 因为题目中点的数量比较多,所以无法直接用状压DP. 但是题目中的边数较少,所以不是联通的,而一个连通块的点不超过21个,而且不同连通块之间可以看做相互独立的.所以我们可以对

HDU 5752 Sqrt Bo【枚举,大水题】

Sqrt Bo Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 2221    Accepted Submission(s): 882 Problem Description Let's define the function f(n)=⌊n−−√⌋. Bo wanted to know the minimum number y wh

【模拟】HDU 5752 Sqrt Bo

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5752 题目大意: 定义f(n)=⌊√n⌋,fy(n)=f(fy-1(n)),求y使得fy(n)=1.如果y>5输出TAT.(n<10100) 题目思路: [模拟] 5层迭代是232,所以特判一下层数是5的,其余开根号做.注意数据有0. 队友写的. 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h&g

【模拟】HDU 5762 Teacher Bo

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5762 题目大意: 给n个点,坐标范围0~m(n,m<=105),求是否存在2个点对满足哈夫曼距离相等. 题目思路: [模拟] 乍一看n2绝对T了,但是细想之下发现,坐标范围只有105,那么哈夫曼距离最多就2x105种,所以当循环超出这个范围时肯定能找到解(抽屉原理). 1 // 2 //by coolxxx 3 // 4 #include<iostream> 5 #include<a