UVa 542 - France '98
2017-09-20 17:51
330 查看
题目:有16支球队,并且知道他们两两比赛的输赢概率,问最后每个球队获得冠军的概率。
分析:数学题。数据较小,这里利用递归求解。
说明:注意输出格式。
#include <stdio.h>
#include <stdlib.h>
char countries[16][11];
double matrix[16][16];
double dfs(int k, int l, int r)
{
if (l == r) {
return 1.0;
}
double p, ans = 0.0;
if (k <= (r+l)/2) {
p = dfs(k, l, (r+l)/2);
for (int i = (r+l)/2+1; i <= r; ++ i) {
ans += dfs(i, (r+l)/2+1, r) * matrix[k][i];
}
}else {
p = dfs(k, (r+l)/2+1, r);
for (int i = l; i <= (r+l)/2; ++ i) {
ans += dfs(i, l, (r+l)/2) * matrix[k][i];
}
}
return ans * p;
}
int main()
{
for (int i = 0; i < 16; ++ i) {
scanf("%s",countries[i]);
}
for (int i = 0; i < 16; ++ i) {
for (int j = 0; j < 16; ++ j) {
scanf("%lf",&matrix[i][j]);
matrix[i][j] /= 100.0;
}
}
for (int i = 0; i < 16; ++ i) {
printf("%-10s p=%.2lf%%\n", countries[i], 100.0*dfs(i, 0, 15));
}
return 0;
}
分析:数学题。数据较小,这里利用递归求解。
说明:注意输出格式。
#include <stdio.h>
#include <stdlib.h>
char countries[16][11];
double matrix[16][16];
double dfs(int k, int l, int r)
{
if (l == r) {
return 1.0;
}
double p, ans = 0.0;
if (k <= (r+l)/2) {
p = dfs(k, l, (r+l)/2);
for (int i = (r+l)/2+1; i <= r; ++ i) {
ans += dfs(i, (r+l)/2+1, r) * matrix[k][i];
}
}else {
p = dfs(k, (r+l)/2+1, r);
for (int i = l; i <= (r+l)/2; ++ i) {
ans += dfs(i, l, (r+l)/2) * matrix[k][i];
}
}
return ans * p;
}
int main()
{
for (int i = 0; i < 16; ++ i) {
scanf("%s",countries[i]);
}
for (int i = 0; i < 16; ++ i) {
for (int j = 0; j < 16; ++ j) {
scanf("%lf",&matrix[i][j]);
matrix[i][j] /= 100.0;
}
}
for (int i = 0; i < 16; ++ i) {
printf("%-10s p=%.2lf%%\n", countries[i], 100.0*dfs(i, 0, 15));
}
return 0;
}
相关文章推荐
- uva 542 France '98
- uva 542 - France '98(概率)
- France '98 - UVa 542 概率dp
- UVA542 - France '98(dp)
- UVa:542 France '98
- uva542 - France '98
- uva 542 France '98
- UVA 542 France '98
- UVA 542 France '98
- uva 542 - France '98(概率)
- 542 - France '98
- 542 - France '98 (概率 dp)
- TJU 1170. France '98
- UVA-542 Prime Ring Problem
- UVa 12243 - Flowers Flourish from France
- France '98
- UVa 11242 - Tour de France
- Uva 542
- HEU 2010 France '98
- HRBEU/HEUOJ----1059 France '98