UVA 542 France '98
2013-10-21 14:21
260 查看
题意:求每个队伍夺冠的概率,用dp[i][j]表示前i轮j获胜的可能性,还有就是确保当前两个对手不是前一轮的对手
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAXN = 20; int d[10]; double g[MAXN][MAXN],f[10][MAXN]; //f[i][j] 代表前i轮j获胜的概率 char name[MAXN][15]; int main(){ for (int i = 0; i < 16; i++) scanf("%s",name[i]); for (int i = 0; i < 16; i++) for (int j = 0; j < 16; j++) scanf("%lf",&g[i][j]); memset(f,0,sizeof(f)); d[0] = 1; for (int i = 1; i <= 4; i++) d[i] = d[i-1] * 2; for (int i = 0; i < 16; i++) f[0][i] = 100; for (int i = 1; i <= 4; i++) for (int j = 0; j < 16; j++) for (int k = 0; k < 16; k++){ //确保当前他们是对手,并且前一轮不是对手 if (k/d[i] == j/d[i] && k/d[i-1] != j/d[i-1]) f[i][j] += f[i-1][j] * f[i-1][k] *g[j][k] / 10000; } for (int i = 0; i < 16; i++) printf("%-10s p=%.2f%%\n",name[i],f[4][i]); return 0; }
相关文章推荐
- UVa:542 France '98
- France '98 - UVa 542 概率dp
- UVA542 - France '98(dp)
- uva 542 France '98
- UVa 542 - France '98
- UVA 542 France '98
- uva542 - France '98
- uva 542 France '98
- uva 542 - France '98(概率)
- uva 542 - France '98(概率)
- 简单dfs:UVA 260 Il Gioco dell'X
- UVA10817-----Headmaster's Headache-----状态压缩的背包(记忆化搜索实现)
- uva 10061 How many zero's and how many digits ?(在不同进制下分解因子)
- UVALive 3989 Ladies' Choice
- UVa 10010 - Where's Waldorf?
- UVA 10010 Where's Waldorf?
- UVA - 10010 Where's Waldorf?
- uva 152 - Tree's a Crowd
- uva 10404 Bachet's Game
- UVA 12103/poj 3128/hdu 1975/UVALive 3641 Leonardo's Notebook 置换