坑,一开始以为,分成两半的时候去最大那个就行了,

实际上这样是不对的,因为有可能出现小的一半的时间比大的要长,

因为还和等待次数有关,且转移的时候需要用到次数更小的状态,

所以状态定义为二维,dp[i][j]表示长度为i的区间,放小于等于j次的概率。

要求确切的某次的概率,比如k,就只要用dp[i][k]-dp[i][k-1]就行了。

如何转移?从小到大枚举i,从小到大枚举j,初始化dp[i][j] = dp[i][j-1],

然后求出确切等待j次的概率,以k为界限划分区间,分成l,r两段,加上l区间等待j-1次且r区间等待小于等于j-1次的概率,

类似得加上r区间等待j-1次且l区间等带小于等于j-1次的概率,然后减掉重复计算的状态。

因为只要求中间等待的次数,且一开始要放两个鞭炮,所以可以等效为一开始不计等待,之后每次都计算等待时间。

还有一个细节是每次j从2开始枚举,放一次的只可能是长度为1的情况。

g++使用%lf正常,但在有些oj却会出问题

#include<bits/stdc++.h>
using namespace std; const int maxn = ; double dp[maxn][maxn]; int main()
{
//freopen("in.txt","r",stdin);
int n; scanf("%d",&n);
n -= ; for(int i = ; i <= n; i++){
for(int j = i; j <=n; j++)
dp[i][j] = ;
} for(int i = ; i <= n; i++){
double e = ./i;
for(int j = ; j < i; j++){
dp[i][j] = dp[i][j-];
for(int k = ; k <= i; k++){
int l = k-,r = i-k;
double p1 = dp[l][j-] - dp[l][j-], p2 = dp[r][j-] - dp[r][j-];
double p3 = dp[l][j-];
double p4 = dp[r][j-];
dp[i][j] += e*(p1*p4 + p2*p3 - p2*p1);
}
}
}
double ans = ;
for(int i = ; i <= n; i++){
ans += (dp[n][i]-dp[n][i-])*i*;
}
printf("%.11lf\n",ans);
return ;
}

URAL 1776 Anniversary Firework (概率,区间DP)的更多相关文章

  1. UVA 10529 - Dumb Bones(概率+区间dp)

    UVA 10529 - Dumb Bones option=com_onlinejudge&Itemid=8&category=518&page=show_problem&am ...

  2. URAL 1776 C - Anniversary Firework DP

    C - Anniversary FireworkTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/c ...

  3. 树形DP URAL 1039 Anniversary Party

    题目传送门 /* 题意:上司在,员工不在,反之不一定.每一个人有一个权值,问权值和最大多少. 树形DP:把上司和员工的关系看成根节点和子节点的关系,两者有状态转移方程: dp[rt][0] += ma ...

  4. hdu 4412 Sky Soldiers(区间DP)

    Sky Soldiers Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  5. 【区间dp+组合数+数学期望】Expression

    https://www.bnuoj.com/v3/contest_show.php?cid=9148#problem/I [题意] 给定n个操作数和n-1个操作符,组成一个数学式子.每次可以选择两个相 ...

  6. poj2342 Anniversary party (树形dp)

    poj2342 Anniversary party (树形dp) Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9128   ...

  7. 【BZOJ-4380】Myjnie 区间DP

    4380: [POI2015]Myjnie Time Limit: 40 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 162  Solved: ...

  8. 【POJ-1390】Blocks 区间DP

    Blocks Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 5252   Accepted: 2165 Descriptio ...

  9. 区间DP LightOJ 1422 Halloween Costumes

    http://lightoj.com/volume_showproblem.php?problem=1422 做的第一道区间DP的题目,试水. 参考解题报告: http://www.cnblogs.c ...

随机推荐

  1. 1.1-1.3 HBase入门

    一.HBASE入门 部分参考链接:https://www.cnblogs.com/steven-note/p/7209398.html 1.简介 HBase – Hadoop Database,是一个 ...

  2. E20180527-hm

    percolate vi. 渗透; 滤; 渗入; (思想等) 渗透

  3. 51nod - 1659 - 数方块 - 简单数学

    https://www.51nod.com/Challenge/Problem.html#!#problemId=1659 随便弄了一下发现公式,然后从cheatsheet抄一抄平方和公式,发现可以提 ...

  4. 玲珑OJ1088【蜜汁尺取】

    前言(膜法): 早上10点多开始膜的,然后到中午交了一发,感觉膜法不对啊!然后就兴起小窗了一发管理员,然后管理员给我发了in,out数据...可是太大并没有什么可取性... 还是自己试,然后发现自己搞 ...

  5. LED与OLED的区别:

    LED与OLED的区别: led和oled的发光原理是一样的,只 不过区别是用的材料不一样led用的是金属材料,而oled用的是有机物材料. OLED不需要背光源,自己本身会发光,是采用发光二极管阵列 ...

  6. unity 引入 android第三方sdk

    unity中调用java代码中介绍了unity调用android java代码的一些基础.引入android开发第三方sdk的操作跟调用java代码的操作相似,只是多了一步引入第三方jar. unit ...

  7. 洛谷P3306 [SDOI2013]随机数生成器(BSGS)

    传送门 感觉我BSGS都白学了……数学渣渣好像没有一道数学题能自己想出来…… 要求$X_{i+1}=aX_i+b\ (mod \ \ p)$ 左右同时加上$\frac{b}{a-1}$,把它变成等比数 ...

  8. Aufree/trip-to-iOS

    https://github.com/Aufree/trip-to-iOS?utm_source=next.36kr.com  

  9. 在虚拟机中设置NAT模式实现主机和虚拟机的通信

    1.打开虚拟机,对几个节点进行网络连接的设置.虚拟机设置/网络连接,选择“NAT模式” 2.编辑—>虚拟网络编辑器来查看NAT模式中所用到的网段. 从上图可以看出,NAT中的子网IP是192.1 ...

  10. JAVASCRIPT一维数转化为二维数组

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...