CF16E Fish(概率dp+状压dp)
来源:互联网 发布:入骨相思知不知福禄txt 编辑:程序博客网 时间:2024/06/05 06:20
这题好像思路还是很简单的。。。概率推了一会。。。太弱了。。。
#include <bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f3f#define N 20inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int n,bin[N];double a[N][N],dp[300000];int main(){// freopen("a.in","r",stdin); n=read();bin[0]=1; for(int i=1;i<=n;++i) bin[i]=bin[i-1]<<1;dp[bin[n]-1]=1; for(int i=0;i<n;++i) for(int j=0;j<n;++j) scanf("%lf",&a[i][j]); for(int s=bin[n]-1;s>=1;--s){ int tot=0;for(int i=0;i<n;++i) if(s&bin[i]) tot++; if(tot==1) continue;double t=2.0/(tot*(tot-1)); for(int i=0;i<n;++i){ if((s&bin[i])==0) continue; for(int j=i+1;j<n;++j){ if((s&bin[j])==0) continue; dp[s-bin[i]]+=a[j][i]*dp[s]*t; dp[s-bin[j]]+=a[i][j]*dp[s]*t; } } } for(int i=0;i<n;++i) printf("%.6f ",dp[bin[i]]); return 0;}
阅读全文
0 0
- CF16E Fish(概率dp+状压dp)
- Codeforces 16E Fish (状压dp+概率)
- Codeforces 16E Fish dp(概率)
- codeforces 16E Fish (概率-期望DP)
- bzoj1076【概率dp+状压】
- Codeforces Beta Round #16 (Div. 2 Only), problem: (E) Fish 概率DP
- 概率dp
- ##概率dp##
- 概率dp
- 概率dp
- 概率dp
- 概率dp
- 概率dp
- 概率dp
- 概率dp
- 概率dp
- 概率DP
- 概率DP
- eslint的规则设置
- 在Gradle中使用阿里巴巴Java开发规约插件进行代码检查
- Zwj的图床
- 协方差矩阵
- 扩展ThreadPoolExecutor的一种办法
- CF16E Fish(概率dp+状压dp)
- 给绑定函数添加参数
- linux--crontab 定时任务
- 微信小程序URIError: URI malformed
- IE6bug汇总
- [学习][SCOI2005][bzoj1085]迭代加深 骑士精神
- Immutuable Object
- linux命令使用
- keras使用GPU