uvalive 5721 Activation (概率dp+方程)
题目链接:http://vjudge.net/problem/viewProblem.action?id=24999
主要思想就是解方程的思想。
二维dp应该很容易想到,就是当前位置加队伍长度。
dp递推式存在循环,因此想到像解方程组一样把一个dp值解出来,然后顺序递推。
先贴代码,一会把递推式放上来。
#include <stdio.h>
#include <stdlib.h>
#include <cstring>
#include <algorithm>
#define eps 1e-5 using namespace std; double dp[][],c[],a[],b[];
int main(){
double p1,p2,p3,p4,p21,p31,p41;
int n,m,k;
while(scanf("%d%d%d",&n,&m,&k)!=EOF){
scanf("%lf%lf%lf%lf",&p1,&p2,&p3,&p4);
if(p4<eps){
printf("0.00000\n");
continue;
}
p21=p2/(1.0-p1);
p31=p3/(1.0-p1);
p41=p4/(1.0-p1);
memset(dp,,sizeof dp);
dp[][]=p4/(1.0-p1-p2);
int i,j;
for(i=;i<=n;i++){
for(j=;j<=k&&j<=i;j++)c[j]=p41+p31*dp[i-][j-];
for(j=k+;j<=i;j++)c[j]=p31*dp[i-][j-];
a[]=1.0,b[]=0.0;
for(j=;j<=i;j++){
a[j]=a[j-]*p21;
b[j]=b[j-]*p21+c[j];
}
dp[i][i]=(a[i]*p41+b[i])/(1.0-a[i]*p21);
dp[i][]=p21*dp[i][i]+p41;
for(j=;j<i;j++)dp[i][j]=p21*dp[i][j-]+c[j];
}
printf("%.5lf\n",dp[n][m]);
}
}
uvalive 5721 Activation (概率dp+方程)的更多相关文章
- [HDU 4089]Activation[概率DP]
题意: 有n个人排队等着在官网上激活游戏.Tomato排在第m个. 对于队列中的第一个人.有以下情况: 1.激活失败,留在队列中等待下一次激活(概率为p1) 2.失去连接,出队列,然后排在队列的最后( ...
- HDU4089/Uva1498 Activation 概率DP(好题)
题意:Tomato要在服务器上激活一个游戏,一开始服务器序列中有N个人,他排在第M位,每次服务器会对序列中第一位的玩家进行激活,有四种结果: 1.有p1的概率会激活失败,这时候序列的状态是不变的.2. ...
- HDU 4089 Activation 概率DP 难度:3
http://acm.hdu.edu.cn/showproblem.php?pid=4089 这道题中一共有两个循环: 1.事件1 如果一直落在Activation failed事件上,那么就会重新继 ...
- [HDU4089]Activation(概率DP)
HDU4089 题意:有n个人排队等着在官网上激活游戏.Tomato排在第m个. 对于队列中的第一个人.有一下情况: 1.激活失败,留在队列中等待下一次激活(概率为p1) 2.失去连接,出队列,然后排 ...
- HDU 4089 Activation(概率DP)(转)
11年北京现场赛的题目.概率DP. 公式化简起来比较困难....而且就算结果做出来了,没有考虑特殊情况照样会WA到死的.... 去参加区域赛一定要考虑到各种情况. 像概率dp,公式推出来就很容易写 ...
- UVALive 2522 Chocolate(概率DP)
思路:定义DP方程dp[i][j]标记选到第i个巧克力的时候,桌面上还剩下j个巧克力,状态转移有两个方向,dp[i-1][j-1],dp[i-1]lj+1],分别表示桌面上多了一个和消了一个,乘上需要 ...
- UVALive 6672 Bonus Cards 概率dp
题意呢 就是有两种售票方式 一种是icpc 一种是其他方式 icpc抢票成功的概率是其他方式的2倍…… 这时 一个人出现了 他通过内幕知道了两种抢票方式各有多少人 他想知道自己如果用icpc抢票成功的 ...
- UVALive 6514:Crusher’s Code(概率dp)
题目链接 https://icpcarchive.ecs.baylor.edu/external/65/6514.pdf 题意:给出n个数(n<8) 求这n个数分别两个程序排成有序时,程序的期望 ...
- [转]概率DP总结 by kuangbin
概率类题目一直比较弱,准备把kuangbin大师傅总结的这篇题刷一下! 我把下面的代码换成了自己的代码! 原文地址:http://www.cnblogs.com/kuangbin/archive/20 ...
随机推荐
- 14.5.2.3 Consistent Nonlocking Reads 一致性非锁定读
14.5.2.3 Consistent Nonlocking Reads 一致性非锁定读 一致性读意味着 InnoDB 使用多版本来实现一个查询数据库的快照在某个时间点. 查看看到的事务做出的改变被提 ...
- QTP自传之测试报告
前言 测试报告是测试阶段的最后产出,也是最重要的产出,自动化测试报告也是如此.前期所做的工作,添加对象.编写脚本等都是为了可以生成一份正确.严谨的测试报告.我作为一款功能全面的自动化测试工具,毫无疑问 ...
- CodeForces 689C Mike and Chocolate Thieves
题目链接:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=412145 题目大意:给定一个数字n,问能不能求得一个最小的整 ...
- TXT四则运算计算器
基本思想:使用getline函数从TXT文件中依次读出中缀表达式,将其转为后缀表达式后计算结果,并与用户结果比对. 整数.分数.小数的处理:将小数和整数都视为默认分母为1的分数.建立分数类,在中缀转换 ...
- 西安Uber优步司机奖励政策(1月18日~1月24日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- MVC4中EasyUI Tree异步加载JSON数据生成树
1,首先构造tree接受的格式化数据结构MODEL /// <summary> /// 定义EasyUI树的相关数据,方便控制器生成Json数据进行传递 /// </summar ...
- html打印表格每页都有的表头和打印分页
本文转载:http://www.cnblogs.com/RitchieChen/archive/2008/07/30/1256829.html 在做项目的时候碰到的.用户要求,页面呈现太长时,打印的时 ...
- caffe源代码分析--math_functions.cu代码研究
当中用到一个宏定义CUDA_KERNEL_LOOP 在common.hpp中有. #defineCUDA_KERNEL_LOOP(i,n) \ for(inti = blockIdx.x * bloc ...
- Android-Socket传输 GPRS网络
手机使用GPRS网络与server进行Socket通信,代码下载地址:http://download.csdn.net/detail/wu20093346/7768481 用UDP协议与Socket调 ...
- poj 3735 大数量反复操作问题(矩阵高速幂)
题意:一个一维数组,3种操作: a: 第i个数+1,b: 第i个数=0 ,c::交换某俩处的数. 由三种基本操作构成一组序列,反复该序列m次(m<10^9),问结果 属于一种综合操作反复型: ...