来自lyd课件

发现s和last(s),next(s)成树结构,然后把式子化简成kx+b的形式,做树形dp即可

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,t,a[105];
double p,q;
struct qwe
{
double k,b;
qwe(double K=0,double B=0)
{
k=K,b=B;
}
};
qwe dfs(int s,int mx)
{
if(s>t)
return qwe(0,0);
double ne,b=0,k=0,r=1;
ne=1.0/(double)mx;
for(int i=1;i<=mx;i++)
{
qwe nw=dfs(s+a[i],i);
b=b+nw.b,k=k+nw.k;
}
q=s?p:0.0;
r=1.0-(1.0-q)*ne*k;
k=q/r;
b=((1.0-q)*ne*b+1)/r;
return qwe(k,b);
}
int main()
{
while(~scanf("%lf%d%d",&p,&t,&n))
{
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
sort(a+1,a+n+1);
printf("%.3lf\n",dfs(0,n).b);
}
return 0;
}

bzoj 2784: [JLOI2012]时间流逝【树形期望dp】的更多相关文章

  1. bzoj 2784 [JLOI2012]时间流逝——树上高斯消元

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2784 一个状态可以加很多个能量圈,但减少能量圈的情况只有一种.所以可以用树来刻画. 然后就变 ...

  2. 【BZOJ】4318: OSU!【期望DP】

    4318: OSU! Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 1473  Solved: 1174[Submit][Status][Discuss ...

  3. 【BZOJ】2134: 单选错位 期望DP

    [题意]有n道题,第i道题有ai个选项.把第i道题的正确答案填到第i+1道题上(n填到1),问期望做对几道题.n<=10^7. [算法]期望DP [题解]正确答案的随机分布不受某道题填到后面是否 ...

  4. 【BZOJ】1426: 收集邮票 期望DP

    [题意]有n种不同的邮票,第i次可以花i元等概率购买到一种邮票,求集齐n种邮票的期望代价.n<=10^4. [算法]期望DP [题解]首先设g[i]表示已拥有i张邮票集齐的期望购买次数,根据全期 ...

  5. BZOJ 3566 [SHOI2014]概率充电器 ——期望DP

    期望DP. 补集转化,考虑不能被点亮的情况, 然后就是三种情况,自己不能亮,父亲不能点亮它,儿子不能点亮它. 第一次计算比较容易,第二次计算的时候需要出去第一次的影响,因为一条线只能传导一次 #inc ...

  6. BZOJ 1426: 收集邮票 数学期望 + DP

    Description 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且 买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡 ...

  7. 【树形期望DP】BZOJ3566- [SHOI2014]概率充电器

    [题目大意] 充电器由 n-1 条导线连通了 n 个充电元件.这n-1条导线均有一个通电概率p%,而每个充电元件本身有直接被充电的概率q[i]%.问期望有多少个充电元件处于充电状态? [思路] 第一次 ...

  8. bzoj 2510: 弱题 概率期望dp+循环矩阵

    题目: Description 有M个球,一开始每个球均有一个初始标号,标号范围为1-N且为整数,标号为i的球有ai个,并保证Σai = M. 每次操作等概率取出一个球(即取出每个球的概率均为1/M) ...

  9. BZOJ 1419 Red is good ——期望DP

    定义f[i][j]表示还剩i张红牌,j张黑牌的时候能取得的期望最大值 显然有$f[i][j]=max(0,\frac {i}{i+j}(f[i-1][j]+1)+ \frac {j}{i+j}(f[i ...

随机推荐

  1. msp430入门编程42

    msp430中C语言的软件工程--事件触发程序结构

  2. 一段曲折的copy路程

    cp 的时候出现:-bash: /bin/cp: Argument list too longcp ./*.swf  /www/img/html/xxx/action/ 解决办法:find ./ -n ...

  3. Python闭包函数

    闭包 闭包:python中的闭包从表现形式上定义(解释)为: 如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure). 先看一个函数: ...

  4. Django学习之 - 基础视图函数

    视图:Views 获取用户请求的方法: 1: request.GET 2: request.POST 3: request.FILES # checkbox 等多选文件 4:request.POST. ...

  5. Java二维码的解码和编码

    原文:http://www.open-open.com/code/view/1430906793866 import java.io.File; import java.util.Hashtable; ...

  6. Effective C++ Item 27 少做转型操作

    本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie todo Item34 旧式转型 (T) expression 或 T (expressio ...

  7. Linux 将一般的用户加入sudo组is_not_in_the_sudoers_file._This_incident_will_be_reported解决方法

      在一般用户下执行sudo命令提示xxx is not in the sudoers file. This incident will be reported.解决方法:        $where ...

  8. activiti自己定义流程之自己定义表单(一):环境配置

    先补充说一下自己定义流程整个的思路,自己定义流程的目的就是为了让一套代码解决多种业务流程.比方请假单.报销单.採购单.协作单等等.用户自己来设计流程图. 这里要涉及到这样几个基本问题,一是不同的业务需 ...

  9. hdu 3853(数学期望入门)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3853 LOOPS Time Limit: 15000/5000 MS (Java/Others)    ...

  10. hdu 5303 Delicious Apples

    这道题贪心 背包 假设在走半圆之内能够装满,那么一定优于绕一圈回到起点.所以我们从中点将这个分开,那么对于每一个区间由于苹果数非常少,所以能够利用pos[x]数组记录每一个苹果所在的苹果树位置,然后将 ...