POJ FOUR QUARTERS
http://poj.org/problem?id=1217
题意:两个人在玩抛硬币的游戏,没回合抛两次,两次的结果不同,双方得到的分也是不同的,要求输出前20轮中,没回合A胜,B胜或是平局的概率。
算法:概率DP
分析:用dp[i][j][k] 来表示第i轮,A得的总分数为j,B得的分数是k的概率 ,用向后递推的思想就可以求解本题了。
代码:
/*
POJ 1217 FOUR QUARTERS
Tips : DP
runtime 0ms
Memory 1080K
*/
#include<stdio.h>
#include<string.h>
const double P1 = 1.0 / 2.0 ;
const double P2 = 1.0 / 4.0 ;
int add_a[15] = {0,1,1,2,0,0,1,-1,0,0} ;
int add_b[15] = {0,0,-1,-1,1,0,0,2,0,-1} ;
double p[15] = {1,P2*P2,P1*P2,P2*P2,P1*P2,P1*P1,P1*P2,P2*P2,P2*P1,P2*P2} ;
double dp[21][65][65] ;
void DP(){memset(dp,0,sizeof(dp));dp[0][20][20] = 1 ;for(int i=1;i<=20;i++){for(int j=0;j<=60;j++){int score1 = j-20 ;for(int k=0;k<=60;k++){int score2 = k - 20 ;for(int st=1;st<=9;st++){int n_s1 = score1 + add_a[st] ;int n_s2 = score2 + add_b[st] ;dp[i][n_s1+20][n_s2+20] += dp[i-1][j][k] * p[st] ;}}}}printf("Round A wins B wins Tie\n");for(int i=1;i<=20;i++){double a_win = 0 , b_win = 0 , tie = 0 ;for(int j=0;j<=60;j++){for(int k=0;k<=60;k++){if(j>k) a_win+=dp[i][j][k] ;else if(j<k) b_win += dp[i][j][k] ;else tie += dp[i][j][k] ;}}printf("%5d%10.4f%%%9.4f%%%9.4f%%\n",i,a_win*100,b_win*100,tie*100);}
}
int main(){freopen("1out","w",stdout);DP() ;return 0;
}
POJ FOUR QUARTERS相关推荐
- POJ 1217 FOUR QUARTERS 笔记
抛掷硬币,玩家A.B每轮分别抛两次硬币,每轮得分如图.求前20轮A赢,B赢,打平的概率.
- POJ 1217 FOUR QUARTERS
题目意思是,AB两个人掷硬币,每次一个人掷两次,然后对应图标里面得分,要你输出前20回合 A赢,B赢,或是平均的概率 dp还是不怎么会,参考别人代码才敲出来的 1 #include<iostre ...
- (多重背包+记录路径)Charlie's Change (poj 1787)
http://poj.org/problem?id=1787 描述 Charlie is a driver of Advanced Cargo Movement, Ltd. Charlie dri ...
- POJ前面的题目算法思路【转】
1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...
- poj题目详细分类及算法推荐题目
DP: 1011 NTA 简单题 1013 Great Equipment 简单题 1024 Calendar Game 简单题 ...
- ACM POJ 题目分类(完整整理版本)
DP: 1011 NTA 简单题 1013 Great Equipment 简单题 1024 Calendar Game 简单题 ...
- POJ ZOJ题目分类
POJ,ZOJ题目分类(多篇整合版,分类很细致,全面) 标签: 题目分类POJ整理 2015-04-18 14:44 1672人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: ACM资料(5) ...
- POJ,ZOJ题目分类(多篇整合版,分类很细致,全面)
水题: 3299,2159,2739,1083,2262,1503,3006,2255,3094 初级: 一.基本算法: (1)枚举 (1753,2965) (2)贪心(13 ...
- Poj·Picnic Planning
初见安~这里是传送门:Poj P1639 Description The Contortion Brothers are a famous set of circus clowns, known wo ...
最新文章
- ORB-SLAM(四)追踪
- golang修改文件的最后访问时间,最后修改时间
- 为什么计算机有信息记忆功能,为什么计算机有记忆能力
- JAVA--自制斐波那契数列输出
- MySQL高可用--MGR入门(3)单主/多主模式切换
- 2021年中国超轻型直升机市场趋势报告、技术动态创新及2027年市场预测
- pcie握手机制_图解PCIE原理(从软件角度)
- java中quickstart_Beam编程系列之Java SDK Quickstart(官网的推荐步骤)
- [ZT]硬盘整数分区计算方法
- 有什么好玩的网页小游戏网站推荐么?
- html输入框位置控制,JS 控制input 输入框光标位置
- 使用 SHAP库 对模型预测作解释
- mysql spj_MySQL查询优化器--非SPJ优化--ORDERBY优化
- Win7系统安装软件提示不是有效的win32应用程序的解决方法
- python中对数字降序和升序_该程序查找在Python中按升序或降序排列数字的最低成本...
- 老梁情商课-拒绝是战术不是艺术
- 如何把PDF转成PPT文件?这几招简单方便
- 如何快速查询极兔快递并设置参数?
- GHz指计算机的,ghz指的是计算机的
- IdentityServer4总结