poj_3071概率dp
2018-04-14 12:41
260 查看
确定好对手就简单了。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; double a[150][150]; double dp[9][150]; int n; void solve() { memset(dp,0,sizeof(dp)); for(int i=0;i<=(1<<n);i++) dp[0][i]=1; for(int i=1;i<=n;i++) { int r=1<<(i-1),l=1<<i; for(int j=1;j<=(1<<n);j+=l) { for(int k=j;k<j+l;k++) { if(k<j+r) for(int t=j+r;t<j+l;t++) { dp[i][k]+=dp[i-1][k]*dp[i-1][t]*a[k][t]; } else for(int t=j;t<j+r;t++) dp[i][k]+=dp[i-1][k]*dp[i-1][t]*a[k][t]; } } } int cur; double cnt=0; for(int i=0;i<=(1<<n);i++) if(dp [i]>cnt) { cnt=dp [i]; cur=i; } cout<<cur<<endl; } int main() { while(scanf("%d",&n)!=EOF) { if(n==-1) break; for(int i=1;i<=(1<<n);i++) for(int j=1;j<=(1<<n);j++) scanf("%lf",&a[i][j]); solve(); } return 0; }
相关文章推荐
- POJ 3071 Football(概率DP)
- POJ 3071 Football (概率DP)
- POJ 3071 Football [概率DP]
- poj3071之概率DP
- POJ 3071 Football(概率DP)
- poj 3071 概率dp
- POJ 3071 概率DP
- POJ 3071 Football—概率DP-conquer sea博客
- poj 3071 Football 概率dp
- poj3071之概率DP
- poj 3071 概率DP 位运算
- poj 3071 Football(概率dp)
- poj 3071 简单概率dp
- POJ 3071 Football (概率DP)
- POJ 3071 Football(概率DP)
- POJ 3071 Football(概率DP)
- POJ 3071 Football 概率DP入门
- [概率dp] poj 3071 Football
- POJ 3071 Football 概率DP 二进制优化
- poj-3071 Football 【概率dp,位运算】