传送门

题意:
n个火箭排成一排
一开始点燃第一个和最后一个火箭
然后每次只能在点燃过的火箭中的火箭
每两次点燃火箭的间隔时间为10s求
点燃n个火箭等待时间的期望

题解:
我还是太Naive了,一开始以为是期望+区间DP,dp[i]表示合并长度为i的区间的期望时间,转移直接取两段区间的max。后来发现期望DP不能取max,直接不会了。

看了题解才知道,合并区间的时间一类的问题可以从概率下手,因为概率显然可以直接合并,最后乘上贡献就好了。

dp[i][j]dp[i][j]表示合并长度为ii的区间用j步的概率,那么DP转移方程可以谢为:

dp[i][j]=∑mid=1i{dp[mid][j−1]∗∑k=1j=1dp[i−mid][k]+dp[i−mid][j−1]∗∑k=1j=1dp[mid][k]}

dp[i][j]=\sum_{mid=1}^{i}\{dp[mid][j-1]*\sum_{k=1}^{j=1}dp[i-mid][k]+dp[i-mid][j-1]*\sum_{k=1}^{j=1}dp[mid][k]\}(记得去重,懒得写了)。

sum记录前缀和成功n3n^3DP。对了,边界特别恶心,我心态已经被调崩了。。

#include<bits/stdc++.h>
using namespace std;
const int Maxn=4e2+50;
int n;
double dp[Maxn][Maxn];
int main(){scanf("%d",&n);n-=2;for(int i=0;i<=n;i++){for(int j=i;j<=n;j++)dp[i][j]=1.0;}for(int i=1;i<=n;i++)for(int j=2;j<=i;j++){dp[i][j]=dp[i][j-1];for(int k=0;k<i;++k){if(k==0||k==i-1){dp[i][j]+=(dp[i-1][j-1]-dp[i-1][j-2])/i;continue;}double p1=dp[k][j-1],p2=dp[i-k-1][j-1],p3=dp[k][j-2],p4=dp[i-k-1][j-2]; dp[i][j]+=(p1*p2-p3*p4)/i;}x}double ans=0;for(int i=1;i<=n;i++){ans+=10.0*(dp[n][i]-dp[n][i-1])*i;}printf("%.10f",ans);
}

Ural1776: Anniversary Firework(概率DP)相关推荐

  1. ural - 1776 Anniversary Firework

    题目:http://acm.timus.ru/problem.aspx?space=1&num=1776 Denis has to prepare the Ural State Univers ...

  2. 2018.09.01 poj3071Football(概率dp+二进制找规律)

    传送门 概率dp简单题. 设f[i][j]表示前i轮j获胜的概率. 如果j,k能够刚好在第i轮相遇,找规律可以发现j,k满足: (j−1)>>(i−1)(j−1)>>(i−1) ...

  3. Discovering Gold LightOJ - 1030[概率dp或者记忆化搜索]

    题目大意:有一个[1,n][1,n][1,n]的数轴,数轴上的每个对应位置上都有金矿,你初始位置是1,然后你每次都会投色子决定你下一步跳到哪里,如果你跳出了nnn,那么你就要重新投.问你跳到nnn的时 ...

  4. 【原创】概率DP总结 by kuangbin

    概率DP主要用于求解期望.概率等题目. 转移方程有时候比较灵活. 一般求概率是正推,求期望是逆推.通过题目可以体会到这点. 首先先推荐几篇参考的论文: <信息学竞赛中概率问题求解初探> & ...

  5. poj 3071 Football(概率dp)

    http://poj.org/problem? id=3071 大致题意:有2^n个足球队分成n组打比赛.给出一个矩阵a[][],a[i][j]表示i队赢得j队的概率.n次比赛的流程像这样France ...

  6. HDU 5001 概率DP || 记忆化搜索

    2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP  測 ...

  7. hdu 3853 LOOPS 概率DP

    简单的概率DP入门题 代码如下: 1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 ...

  8. HDU - 4035 Maze(概率dp)

    题目链接:点击查看 题目大意:给出一个 n 个点的树,初始时位于点 1 ,每个点都会给出一个概率 k[ i ] 和一个概率 e[ i ] ,其代表的意义分别是: k[ i ] :在点 i 有 k[ i ...

  9. SDUT - 2623 The number of steps(概率dp)

    题目链接:点击查看 题目大意:给出一个 n 层的三角形,第一层有 1 个点,第二层有 2 个点,第三层有 3 个点 ... 第 n 层有 n 个点,现在规定从第一层的点向下出发: 如果左下方有点并且右 ...

  10. 牛客练习赛26B 烟花 (概率DP)

    链接:https://ac.nowcoder.com/acm/contest/180/B 来源:牛客网 烟花 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5 ...

最新文章

  1. CSS——float属性备忘笔记
  2. python punctuation_经验拾忆(纯手工)=gt; Python基本数据类型_Python - UCloud云社区...
  3. STL 之for_each,transform
  4. python 中爬虫的运用
  5. hibernate正向生成数据库表以及配置——Student.hbm.xml
  6. OpenShift 4 Hands-on Lab (3) - 应用部署和切换策略(蓝绿、金丝雀和A/B、回滚)
  7. CentOS 7.2下Filebeat+Kafka+ELK生产部署(安全加固)
  8. js高级编号笔记[新]-访问文档对象
  9. MEF(Managed Extensibility Framework)学习笔记
  10. python导出项目_使用Python项目生成所有依赖包的清单方式
  11. 计算机网络原理的思维导图汇总
  12. echarts地图列表_Echarts 地图生成
  13. win10如何打开计算机窗口,处理win10中电脑任务栏不显示打开窗口的方法
  14. 【typescript】infer的理解与使用
  15. 【已解决】docker overlay2占用大量磁盘空间处理方法
  16. 将https安全证书导入jdk中
  17. Microsoft SQL Server 2008 R2(Microsoft SQL Server,错误: 2)
  18. arXiv每日推荐-5.9:语音/音频每日论文速递
  19. 蚂蚁区块链平台BaaS技术解析与实践 1
  20. Linux matlab mysql,在linux系统里面安装matlab运行环境mcr

热门文章

  1. 王牌战争文明重启服务器维护费,王牌战争文明重启通行证奖励一览
  2. 小米10pro和荣耀30pro哪个好
  3. mysql_select_db不到数据库问题
  4. 莫甘娜的盾可以挡机器人_LOL:最害怕莫甘娜的辅助,机器人排第二,第一直接失去信心...
  5. 利用生成对抗网络生成海洋塑料合成图像
  6. 华为,全球智慧金融的“摆渡人”
  7. 实用心理学50条,读完你会更强大一点
  8. pycharm专业版安装_教育邮箱
  9. hbase集群之间数据迁移_HBase不同集群间数据迁移
  10. python二值化特征_R与Python手牵手:特征工程(数值型变换)