概率DP POJ3071
2015-07-23 22:02
225 查看
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; double p[300][300]; double dp[10][300]; int main() { int n; while(scanf("%d", &n) != EOF) { if ( n == -1 ) break; int m=1<<n; for(int i=0;i<m;i++) for(int t=0;t<m;t++) scanf("%lf",&p[i][t]); for(int i=0;i<m;i++) dp[0][i]=1.0; for(int i=1;i<=n;i++) { for(int t=0;t<m;t++) { dp[i][t]=0; for(int k=0;k<m;k++) { if(((t>>(i-1))^1)==(k>>(i-1))) { dp[i][t]+=dp[i-1][t]*dp[i-1][k]*p[t][k]; } } } } int ans=0; for(int i=1;i<m;i++) { if(dp [i]>dp [ans]) ans=i; } cout<<ans+1<<"\n"; } return 0; }
View Code
最后注意只能用"\n",用endl会刷新缓冲区,过不了
相关文章推荐
- Repeater的ItemCommand事件(LinkButton)
- Linux下Nagios的安装与配置
- 控制器
- Android基础之HttpUrlConnection小案例
- 关于PHP程序员解决问题的能力
- Linux kernel 分析之十八:设计模式-文件系统与抽象工厂
- Postgres数据库的进程结构---菜鸟的PG分析之路
- BZOJ 2750: [HAOI2012]Road( 最短路 )
- 什么是树型文件目录结构,它是如何构成的?
- 网络拓扑图例库
- cpp文件调用CUDA .cu文件实现显卡加速相关编程
- 石子合并
- vs2010 CString转换char *
- oc中数组排序方法
- hdu 3461 Code Lock(并查集)2010 ACM-ICPC Multi-University Training Contest(3)
- unix网络编程源码编译问题
- 2015多校第二场
- 暑假- 动态规划 I-(S - Investment)
- Toxophily-数论以及二分三分
- apache commons vfs 文件夹监控