France \'98(概率)
题目描述
Today the first round of the Soccer World Championship in France is coming to an end. 16 countries are remaining now, among which the winner is determined by the following tournament:
1 Brazil -----+
+-- ? --+
2 Chile ------+ |
+-- ? --+
3 Nigeria ----+ | |
+-- ? --+ |
4 Denmark ----+ |
+-- ? --+
5 Holland ----+ | |
+-- ? --+ | |
6 Yugoslavia -+ | | |
+-- ? --+ |
7 Argentina --+ | |
+-- ? --+ |
8 England ----+ |
+-- World Champion
9 Italy ------+ |
+-- ? --+ |
10 Norway -----+ | |
+-- ? --+ |
11 France -----+ | | |
+-- ? --+ | |
12 Paraguay ---+ | |
+-- ? --+
13 Germany ----+ |
+-- ? --+ |
14 Mexico -----+ | |
+-- ? --+
15 Romania ----+ |
+-- ? --+
16 Croatia ----+
For each possible match A vs. B between these 16 nations, you are given the probability that team A wins against B. This (together with the tournament mode displayed above) is sufficient to compute the probability that a given nation wins the World Cup. For example, if Germany wins against Mexico with 80%, Romania against Croatia with 60%, Germany against Romania with 70% and Germany against Croatia with 90%, then the probability that Germany reaches the semi-finals is 80% * (70% * 60% + 90% * 40%) = 62.4%.
Your task is to write a program that computes the chances of the 16 nations to become the World Champion \'98.
输入
The first 16 lines of the input file give the names of the 16 countries, from top to bottom according to the picture given above.
Next, there will follow a 16 x 16 integer matrix P where element pijgives the probability in percent that country #i defeats country #j in a direct match. Country #i means the i-th country from top to bottom given in the list of countries. In the picture above Brazil is #1 and Germany is #13, so p1,13=55 would mean that in a match between Brazil and Germany, Brazil wins with a probability of 55%.
Note that matches may not end with a draw, i.e. pij + pji = 100 for all i,j.
输出
示例输入
Brazil
Chile
Nigeria
Denmark
Holland
Yugoslavia
Argentina
England
Italy
Norway
France
Paraguay
Germany
Mexico
Romania
Croatia
50 65 50 60 55 50 50 65 45 55 40 55 40 55 50 50
35 50 35 45 40 35 35 50 30 40 25 40 25 40 35 35
50 65 50 60 55 50 50 65 45 55 40 55 40 55 50 50
40 55 40 50 45 40 40 55 35 45 30 45 30 45 40 40
45 60 45 55 50 45 45 60 40 50 35 50 35 50 45 45
50 65 50 60 55 50 50 65 45 55 40 55 40 55 50 50
50 65 50 60 55 50 50 65 45 55 40 55 40 55 50 50
35 50 35 45 40 35 35 50 30 40 25 40 25 40 35 35
55 70 55 65 60 55 55 70 50 60 45 60 45 60 55 55
45 60 45 55 50 45 45 60 40 50 35 50 35 50 45 45
60 75 60 70 65 60 60 75 55 65 50 65 50 65 60 60
45 60 45 55 50 45 45 60 40 50 35 50 35 50 45 45
60 75 60 70 65 60 60 75 55 65 50 65 50 65 60 60
45 60 45 55 50 45 45 60 40 50 35 50 35 50 45 45
50 65 50 60 55 50 50 65 45 55 40 55 40 55 50 50
50 65 50 60 55 50 50 65 45 55 40 55 40 55 50 50
示例输出
Brazil p=8.54%
Chile p=1.60%
Nigeria p=8.06%
Denmark p=2.79%
Holland p=4.51%
Yugoslavia p=7.50%
Argentina p=8.38%
England p=1.56%
Italy p=9.05%
Norway p=3.23%
France p=13.72%
Paraguay p=3.09%
Germany p=13.79%
Mexico p=3.11%
Romania p=5.53%
Croatia p=5.53% 题意:有16个队,进行如图所示的流程进行比赛,下面给出的是16*16的矩阵,pij表示i对战胜j对的概率是 pij%. 按足球比赛的规则(你懂得),问每个队最后得冠军的几率; 思路:如上图所示,一共有四轮比赛,开辟四个数组,通过递推求得存每一轮中每个队战胜的概率,在第四轮比赛中就产生了冠军。
#include<stdio.h>
#include<string.h> int main()
{
double dp1[],dp2[],dp3[],dp4[];
char cou[][];
double maxtri[][]; for(int i = ; i <= ; i++)
scanf("%s",cou[i]);
for(int i = ; i <= ; i++)
{
for(int j = ; j <= ; j++)
{
int x;
scanf("%d",&x);
maxtri[i][j] = x*0.01;
}
} for(int i = ; i <= ; i++)
{
if(i% == )
dp1[i] = maxtri[i][i-];
else dp1[i] = maxtri[i][i+];
}
for(int i = ; i <= ; i++)
{
if(i% == )
dp2[i] = dp1[i] *(dp1[i+]*maxtri[i][i+] + dp1[i+]*maxtri[i][i+]);
else if(i% == )
dp2[i] = dp1[i] *(dp1[i+]*maxtri[i][i+] + dp1[i+]*maxtri[i][i+]);
else if(i% == )
dp2[i] = dp1[i] *(dp1[i-]*maxtri[i][i-] + dp1[i-]*maxtri[i][i-]);
else
dp2[i] = dp1[i] *(dp1[i-]*maxtri[i][i-] + dp1[i-]*maxtri[i][i-]);
}
for(int i = ; i <= ; i++)
{
if(i% >= && i% <= )
{
if(i/ == )
dp3[i] = dp2[i] * (dp2[]*maxtri[i][] + dp2[]*maxtri[i][] + dp2[]*maxtri[i][] + dp2[]*maxtri[i][]);
else if(i/ == )
dp3[i] = dp2[i] * (dp2[]*maxtri[i][] + dp2[]*maxtri[i][] + dp2[]*maxtri[i][] + dp2[]*maxtri[i][]);
}
else if (i% == || (i% >= && i% <= ))
{
if(i >= && i <= )
dp3[i] = dp2[i] * (dp2[]*maxtri[i][] + dp2[]*maxtri[i][] + dp2[]*maxtri[i][] + dp2[]*maxtri[i][]);
else
dp3[i] = dp2[i] * (dp2[]*maxtri[i][] + dp2[]*maxtri[i][] + dp2[]*maxtri[i][] + dp2[]*maxtri[i][]);
}
} for(int i = ; i<= ; i++)
{
if(i <= )
dp4[i] = dp3[i] *(dp3[]*maxtri[i][]+dp3[]*maxtri[i][]+dp3[]*maxtri[i][]+
dp3[]*maxtri[i][]+dp3[]*maxtri[i][]+dp3[]*maxtri[i][]+
dp3[]*maxtri[i][]+dp3[]*maxtri[i][]);
else dp4[i] = dp3[i] *(dp3[]*maxtri[i][]+dp3[]*maxtri[i][]+dp3[]*maxtri[i][]+
dp3[]*maxtri[i][]+dp3[]*maxtri[i][]+dp3[]*maxtri[i][]+
dp3[]*maxtri[i][]+dp3[]*maxtri[i][]);
} for(int i = ; i <= ; i++)
{
int len = strlen(cou[i]);
printf("%s",cou[i]);
for(int j = len+; j <= ; j++)
printf(" ");
printf("p=%.2lf%%\n",dp4[i]*);
}
return ; }
France \'98(概率)的更多相关文章
- uva 542 - France '98(概率)
题目链接:uva 542 - France '98 题目大意:有16支球队比赛,给出16支球队的名称,然后给出16*16的表格,g[i][j] 表示i队胜j队的概率,问说16支球队获得总冠军的概率. ...
- France '98
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30506#problem/H #include<map> #include&l ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
- 转载:hdu 题目分类 (侵删)
转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...
- poj 3071 Football(概率dp)
id=3071">http://poj.org/problem? id=3071 大致题意:有2^n个足球队分成n组打比赛.给出一个矩阵a[][],a[i][j]表示i队赢得j队的概率 ...
- HOJ题目分类
各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...
- python + pymysql连接数据库报“(2003, "Can't connect to MySQL server on 'XXX数据库地址' (timed out)")”
python + pymysql连接数据库报"(2003, "Can't connect to MySQL server on 'XXX数据库地址' (timed out)&quo ...
- 加州大学伯克利分校Stat2.2x Probability 概率初步学习笔记: Midterm
Stat2.2x Probability(概率)课程由加州大学伯克利分校(University of California, Berkeley)于2014年在edX平台讲授. PDF笔记下载(Acad ...
- 43. 动态规划求解n个骰子的点数和出现概率(或次数)[Print sum S probability of N dices]
[题目] 把N个骰子扔在地上,所有骰子朝上一面的点数之和为S.输入N,打印出S的所有可能的值出现的概率. [分析] 典型的动态规划题目. 设n个骰子的和为s出现的次数记为f(n,s),其中n=[1-N ...
随机推荐
- Java基础知识强化之集合框架笔记22:List集合的三个子类的特点(面试题)
1. List:(面试题List的子类特点)(1)ArrayList: 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高.(2)Vector: 底层数据结构是数组,查询快,增删慢. 线程安全, ...
- VS 2015 update2 装xamarin后,编辑axml文件无智能提示的解决方法。
1.从github网上下载xsd文件.地址:https://github.com/atsushieno/monodroid-schema-gen: 2.如果你是以ie或edge浏览器下载的,一定要又键 ...
- Asp.net中向前端输出JS的一些调用
最近突然写ASP.NET项目,用到向前台输出JS脚本,但是以前在MVC里是通过异步或者一些方法来调用,但是ASP.net用到的很少.在网上找到一个HELPER.CS.保存一下,以后再用. using ...
- @PostConstruct与@PreDestroy
从Java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解(Annotion):@PostConstruct和@PreDestroy.这两个注解被用来修饰一个非静态的vo ...
- js--小结⑦---格式转换
- document.documentElement.style判断浏览器是否支持Css3属性
1.document.documentElement.style 属性定义了当前浏览器支持的所有Css属性 包括带前缀的和不带前缀的 例如:animation,webkitAnimation,msAn ...
- opencart 模块开发详解
opencart 模块开发详解 由 xiekanxiyang » 2013年 7月 11日 10:17 pm opencart 将页面分成若干模块, 每个模块可以有多个实例(可能这样说不是很恰当) 每 ...
- 玩转CSLA.NET小技巧系列二:使用WCF无法上传附件,提示413 Entity Too Large
背景:由于系统需要展示图片,客户上传图片到本地客户端目录,然后在数据库中存储本地图片地址,和图片二进制数据 错误原因:我是使用CSLA的WCF服务,使用了数据门户,WCF协议使用的是wsHttpBin ...
- Javascript实现Web颜色值转换
最近一直忙碌于完成业务需求,好长时间没有写博客了.今天稍微有些时间,翻看了一下最近项目中的一些前端代码,看到Web颜色转换功能的时候,突然想到当我们在做一些颜色设置/编辑的需求时,经常会涉及到各种颜色 ...
- CoreMotion(加速计)
加速计的作用 用于检测设备的运动(比如摇晃) 加速计的经典应用场景 摇一摇 计步器 ********************************** Core Motion获取数据的两种方式 pu ...