HDU 3076 ssworld VS DDD
来源:互联网 发布:上海交大软件学院 编辑:程序博客网 时间:2024/06/05 00:19
这是一道很简答的概率DP,但是我刚开始做的时候自己一个人想 还是一头雾水,,orz,看了别人的博客才晓得原来是这么回事,我最开始的思路是错的,不过可以过很多数据,就不说了,讲讲大神的思路,设p1,p2,p表示第一个人赢,第二个人赢,两者平局。当你要计算谁可能赢的时候,你要计算一局里面赢得概率,那么ssworld 想要赢一局他的骰子的点数必须要多,那么当他是2点的时候 DDD只能是1点,当他是3点的时候他只能是1或2,,以此类推。。这样就可以求出 两者赢一局的概率,那么在整个过程之中某人赢一局的概率是怎样的?无疑对N局来说我赢一局, 你们,没赢,那就说明我们剩下的都是平局,哈哈,所以再设片q1,q2表示整个过程之中赢一局的概率那就是对ssworld 我们有:p1+p1*p+p1*p^2+......+p*p1^n(n->无穷)最后就等于p1/(1-p).所以q1=p1/(1-p)讨论一下p就行,最后就是算他们的概率了设dp[i][j]表示ssworld 赢j,次DDD赢了i次, 他的由来有两方面组成:ssworld 从j-1次赢了一次到j,DDD从j-1次赢了一次到j次。那么就有了状态方程。最后想加就好。最后杭电上的血量反了,颠倒过来就好
#include<iostream>#include<cstring>#include<stdio.h>using namespace std;double a[10],b[10];double f[2005][2005];//表示第一个赢j次第二个赢i次int main(){ int n,m; int i,j,k; double p1,p2,p; while(cin>>m>>n) { p1=0,p2=0,p=0; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(f,0,sizeof(f)); for(i=1;i<=6;i++) scanf("%lf",&a[i]); for(i=1;i<=6;i++) scanf("%lf",&b[i]); for(i=2;i<=6;i++) for(j=1;j<i;j++) p1+=a[i]*b[j]; for(j=2;j<=6;j++) for(i=1;i<j;i++) p2+=a[i]*b[j]; p=1-p1-p2; double q1; double q2; //cout<<p<<endl; if(p==1){q1=0,q2=0;} else { q1=p1/(1-p); q2=p2/(1-p); } // cout<<p1<<" "<<p2<<endl; f[0][0]=1; for(j=0;j<m;j++) for(i=0;i<=n;i++) { if(j>0)f[i][j]+=f[i][j-1]*q1; if(i>0)f[i][j]+=f[i-1][j]*q2; } double max=0; for(i=0;i<n;i++) max+=f[i][m-1]*q1; //double M=0.5; //printf("%.6lf\n",M); if(max>1)max=1; printf("%.6lf\n",max); } return 0;}
0 0
- hdu 3076 ssworld VS DDD
- HDU 3076 ssworld VS DDD
- HDU 3076 ssworld VS DDD 概率DP
- hdu 3076 ssworld VS DDD 概率DP
- 【HDU】3076 ssworld VS DDD 概率DP
- hdu 3076 ssworld VS DDD (概率dp)
- hdu 3076 ssworld VS DDD 概率dp
- HDU 3076 ssworld VS DDD (概率DP)
- hdu 3076 ssworld VS DDD 概率dp
- HDU 3076 ssworld VS DDD 概率DP
- HDU 3076 ssworld VS DDD (概率dp)
- HDU 3076 ssworld VS DDD 【概率dp】
- HDU 3076 ssworld VS DDD DP 概率水题
- HDU 3076 ssworld VS DDD(概率dp)
- HDU 3076 ssworld VS DDD 概率DP入门
- hdu 3076 ssworld VS DDD(概率DP)@
- hdu 3076 ssworld VS DDD (概率与期望DP)
- ssworld VS DDD hdu 概率DP
- Android学习路线(四)构建一个简单的UI
- viewpage使用注意
- hdu 1003 Max Sum
- 关于viewController.view在不同情况下frame问题
- hdu 1231 最大连续子序列
- HDU 3076 ssworld VS DDD
- grunt压缩js多个任务的样板
- maven dependency详解
- C专家编程之编译器日期被破坏程序
- hdu 2084 数塔
- 蓝的成长记——追逐DBA(1):奔波于路上,挺进山东
- Tomcat 学习进阶历程之关闭钩子
- ubuntu + glink GTAG
- Listview headview 显示隐藏