HDU 3076 ssworld VS DDD 概率dp,无穷级数,oj错误题目 难度:2
http://acm.hdu.edu.cn/showproblem.php?pid=3076
不可思议的题目,总之血量越少胜率越高,所以读取时把两人的血量交换一下
明显每一轮的胜率和负率都是固定的,所以设psc为胜率,pls为负率,peq为平率,
则在每一局中的胜率负率平率可以确定,
而在有结果的一个阶段中的胜率和负率则各是一个无穷级数
psc(new)=1*psc+peq*psc+peq*peq*psc.......=lim(n->正无穷)(1-peq^n)*psc/(1-peq)=psc/(1-peq)
pls(new)=1*pls+peq*pls+peq*peq*pls.......=lim(n->正无穷)(1-peq^n)*pls/(1-peq)=pls/(1-peq)
设p[i][j]为A的hp为i,B的hp为j的概率
很明显转移公式是:
当i>0,j>0时
p[i-1][j]+=p[i][j]*pls(new)
p[i][j-1]+=p[i][j]*psc(new)
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
using namespace std;
const int maxn=2e3+3;
double p[maxn];
double pp[2][6];
double psc,pls,peq;
int a,b;
double ans; void calc(){
psc=pls=peq=0;
ans=0;
memset(p,0,sizeof p);
for(int i=0;i<6;i++){
for(int j=0;j<6;j++){
if(i==j)peq+=pp[0][i]*pp[1][j];
else if(i<j)pls+=pp[0][i]*pp[1][j];
else psc+=pp[0][i]*pp[1][j];
}
}
if(peq!=1){
psc/=(1-peq);
pls/=(1-peq);
}
p[b]=1;
for(int i=a;i>0;i--){
for(int j=b;j>0;j--){
p[j-1]+=p[j]*psc;
}
ans+=p[1]*psc;
for(int j=b;j>0;j--){
p[j]*=pls;
}
}
} int main(){
while(scanf("%d%d",&b,&a)==2){
for(int i=0;i<6;i++)scanf("%lf",pp[0]+i);
for(int i=0;i<6;i++)scanf("%lf",pp[1]+i);
calc();
printf("%.6f\n",ans);
} return 0;
}
HDU 3076 ssworld VS DDD 概率dp,无穷级数,oj错误题目 难度:2的更多相关文章
- hdu 3076 ssworld VS DDD (概率dp)
///题意: /// A,B掷骰子,对于每一次点数大者胜,平为和,A先胜了m次A赢,B先胜了n次B赢. ///p1表示a赢,p2表示b赢,p=1-p1-p2表示平局 ///a赢得概率 比一次p1 两次 ...
- hdu3076--ssworld VS DDD(概率dp第三弹,求概率)
ssworld VS DDD Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- hdu3076ssworld VS DDD 概率dp
//ssworld VS DDD 两个人有血量值 hp1 , hp2 //两人掷骰子得到每一点的概率已知 //ssword赢的概率 //dp[i][j] 表示有第一个人血量为i.第二个人的血量为j ...
- HDU 5781 ATM Mechine (概率DP)
ATM Mechine 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5781 Description Alice is going to take ...
- HDU 4050 wolf5x(动态规划-概率DP)
wolf5x Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- hdu 4405 Aeroplane chess (概率DP)
Aeroplane chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 4336——Card Collector——————【概率dp】
Card Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 概率DP light oj 1030
t组数据 n块黄金 到这里就捡起来 出发点1 到n结束 点+位置>n 重掷一次 dp[i] 代表到这里的概率 dp[i]=(dp[i-1]+dp[i-2]... )/6 如果满6个的话 否则 ...
- HDU 3853:LOOPS(概率DP)
http://acm.split.hdu.edu.cn/showproblem.php?pid=3853 LOOPS Problem Description Akemi Homura is a M ...
随机推荐
- poj1755Triathlon(半平面交)
链接 根据题意可以设三段路程分别为A,B,C 那么总时间t = A/V+B/U+C/W. 这样根据时间大小关系可以跟其余n-1个联立形成n-1个方程. 化简后为A(1/vj-1/vi)+B(1/uj- ...
- 使用SurfaceView
一.新建一个工程“LearnSurfaceView” 二.新建一个类“MySurfaceView” public class MySurfaceView extends SurfaceView imp ...
- js获取字符串的字节长度
占用3个字节的范围 U+2E80 - U+2EF3 : 0xE2 0xBA 0x80 - 0xE2 0xBB 0xB3 共 115 个 U+2F00 - U+2FD5 : 0xE2 0xBC 0x80 ...
- SqlServer_Sql防止注入
注入式攻击的详细解释SQL下面我们将以一个简单的用户登陆为例,结合代码详细解释一下SQL注入式攻击,与及他的防范措施.对于一个简单的用户登陆可能的代码如下:try{ string strUserNam ...
- neon汇编,C嵌入汇编
1. Neon-intrics.pdf中的 void vst2q_u16(__transfersize(16) uint16_t * ptr, uint16x8x2_t val);// VST2.16 ...
- 如何创建和使用XMLHttpRequest对象?
创建XMLHttpRequest对象,我有以下几种方法,顺带给大家介绍下他们的使用,一起来看看那吧. 1. 第一种,我们可以使用构造函数的方式.直接new的方式,这样我们就构造了这个对象. reque ...
- SAM格式 及 比对工具之 samtools 使用方法
参考资料: SAMtools(官网) SAM Spec v1.4 (SAM格式 说明书) (重要) samtools-1.3.1 使用手册 (SAMtools软件说明书) samtools常用命令详解 ...
- 编译maxscale
编译maxscale,需要依赖mariadb版本的MySQL.有自己的版本就是任性啊
- eclipse 新建 maven 项目 步骤(初级入门新手)
安装 maven(百度) 和在eclipse 中svn(上一篇) 修改 maven 本地仓库 eclipse 属性 maven--> installations-->添加新的 自定义安装的 ...
- Hibernate的Restrictions用法
Restrictions.eq --> equal,等于. Restrictions.allEq --> 参数为Map对象,使用key/value进行多个等于的比对,相当于多个Restri ...