zoj 3299 概率dp
来源:互联网 发布:杨幂网络暴力事例 编辑:程序博客网 时间:2024/04/29 07:46
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3329
回头重推式子
题解:http://blog.csdn.net/morgan_xww/article/details/6775853#reply
学到:
1、目前做的两道期望的状态转移方程都是从大向小推,定义方式:dp[i][j][k].... 满足i,j,k时,要达到upbound(i),upbound(j),upbound(k),需要XX的期望
2、待定系数的方法
3、算pk的代码:
这里做个注释:
p[i+k+j]=sigma(v1*v2*v3/(k1+k2+k3)),然后就能理解那个代码了吧。
4、求状态转移方程关键还是找到一个当前状态与其他状态的关系等式,,,,目前经验不足,继续刷题吧
5、printf("%.15lf",)-----------哇靠,第一次见到这种写法,而且不这么些精度还不够
#include <cstdio>#include <iostream>#include <cstring>using namespace std;#define rep(i,s,e) for(int i=s;i<e;i++)#define repe(i,s,e) for(int i=s;i<=e;i++)#define reped(i,s,e) for(int i=s;i>=e;i--)#define arclr(aa,v) memset(aa,v,sizeof(aa));const int MAXN = 500+30;int A,B,c,k1,k2,k3,n;double a[MAXN],b[MAXN],p[MAXN],e[MAXN];void calp(int k1, int k2, int k3){ memset(p,0,sizeof(p)); //这个p的算法很不错啊 p[0]=1.0/(k1*k2*k3); repe(i,1,k1) repe(j,1,k2) repe(k,1,k3) { if(i==A && j==B && k==c)continue; p[i+k+j]+=p[0]; } //p[k1+k2+k3]=p[0];}double solve(){ e[n+1]=a[n+1]=b[n+1]=0; arclr(a,0); arclr(b,0); int en=k1+k2+k3; for(int i=n;i>=0;i--) { for(int k=3;k<=en;k++) { a[i]+=p[k]*a[i+k]; b[i]+=p[k]*b[i+k]; } a[i]+=p[0]; b[i]+=1; } return b[0]/(1.0-a[0]);}int main(){ //freopen("zoj3299.txt","r",stdin); int ncase; scanf("%d",&ncase); while(ncase--) { scanf("%d%d%d%d%d%d%d", &n, &k1, &k2,&k3, &A, &B, &c); calp(k1,k2,k3); printf("%.15lf\n",solve()); } return 0;}
1 0
- zoj 3299 概率dp
- zoj 3582 概率dp
- ZOJ 3822 概率DP
- 概率dp ZOJ 3640
- zoj 3640 概率dp
- zoj 3822概率dp
- 概率dp ZOJ 3329
- zoj 3640 概率dp
- zoj 3735 概率dp
- zoj 3822 概率dp
- zoj 3735 概率dp
- ZOJ 3582 概率DP
- ZOJ 3329 概率dp
- 【概率DP】zoj 3329
- ZOJ 3551 Bloodsucker 概率DP
- [zoj 3551]Bloodsucker[概率DP]
- [概率dp] zoj 3822 Domination
- ZOJ 3822 Domination(概率dp)
- C++与C添加标准库头文件的形式
- Jquery 分页
- 集合(TreeMap练习-字母出现的次数)
- POJ - 1135 Domino Effect (最短路 Dijkstra)
- IE6的3像素BUG
- zoj 3299 概率dp
- Web MVC简介
- POJ 1724 ROADS (搜索+剪枝)
- Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法
- Pat(Advanced Level)Practice--1082(Read Number in Chinese)
- linux 进程前后台调度
- 集合(Map扩展)
- poj 1548
- HDU Today(prim——最小生成树)