poj3071
题目大意,1<<n个球队比赛赛程是这样的
1
1 1
1 1 1 1
另dp[i][k]为k队进入第i场的概率
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
const int maxa = (<<);
double a[maxa][maxa];
double dp[][maxa];
int main(){
int n;
while(scanf("%d", &n)!=EOF){
if(n == -){
return ;
}
for(int i = ; i < (<<n); i++){
for(int k = ; k < (<<n); k++)
scanf("%lf", &a[i][k]);
}
memset(dp, , sizeof(dp));
for(int i = ; i < (<<n); i++)
dp[][i] = ;
for(int i = ; i <= n; i++){
// printf("%d*\n", i);
for(int k = ; k < (<<n); k++){
// printf("%d ", k);
for(int j = k/(<<i)*(<<i); j < k/(<<i)*(<<i)+(<<i); j++){
if(j/(<<(i-)) != k/(<<(i-))){
dp[i][k] += dp[i-][j]*a[k][j];
//printf("%d ", j);
}
}//puts("");
dp[i][k] = dp[i][k]*dp[i-][k];
}
}
/* for(int k = 0; k <= n; k++){
for(int i = 0; i < (1<<n); i++){
printf("%lf ", dp[k][i]);
}puts("");
}*/
double maxn = dp[n][];
//printf("%lf\n", maxn);
int ans = ;
for(int i = ; i < (<<n); i++){
if(dp[n][i] > maxn){
maxn = dp[n][i];
ans = i;
}
//printf("%lf\n", dp[1][i]);
}
printf("%d\n", ans+); }
}
poj3071的更多相关文章
- 【poj3071】 Football
http://poj.org/problem?id=3071 (题目链接) 题意 ${2^n}$个队伍打淘汰赛,输的被淘汰.第1个队打第2个队,第3个队打第4个队······给出第i个队伍打赢第j个队 ...
- poj3071 Football(概率dp)
poj3071 Football 题意:有2^n支球队比赛,每次和相邻的球队踢,两两淘汰,给定任意两支球队相互踢赢的概率,求最后哪只球队最可能夺冠. 我们可以十分显然(大雾)地列出转移方程(设$f[ ...
- 【POJ3071】Football - 状态压缩+期望 DP
Description Consider a single-elimination football tournament involving 2n teams, denoted 1, 2, …, 2 ...
- Football(POJ3071)
Football Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3469 Accepted: 1782 Descript ...
- poj3071 Football
学习位运算在比赛的技巧 http://poj.org/problem?id=3071 Football Time Limit: 1000MS Memory Limit: 65536K Total ...
- POJ3071:Football(概率DP)
Description Consider a single-elimination football tournament involving 2n teams, denoted 1, 2, …, 2 ...
- Football 概率DP poj3071
Footbal ...
- POJ3071 Football 概率DP 简单
http://poj.org/problem?id=3071 题意:有2^n个队伍,给出每两个队伍之间的胜率,进行每轮淘汰数为队伍数/2的淘汰赛(每次比赛都是相邻两个队伍进行),问哪只队伍成为冠军概率 ...
- [poj3071]football概率dp
题意:n支队伍两两进行比赛,求最有可能获得冠军的队伍. 解题关键:概率dp,转移方程:$dp[i][j] + = dp[i][j]*dp[i][k]*p[j][k]$表示第$i$回合$j$获胜的概率 ...
随机推荐
- JSP网页防止sql注入攻击
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使 ...
- 第几天 switch做法 杭电
第几天? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
首先声明,这篇文章是从网上粘贴过来的.原文地址是:http://www.cnblogs.com/wangaohui/archive/2012/11/28/2791999.html.感觉写的很好,所以粘 ...
- 为什么c程序里一定要写main函数
一. 学习过程 编写程序f.c: 对其进行编译,正常通过,再对其进行连接,出现错误: 显示的出错信息为: 翻译成中文是:在c0s模块没有定义符号’_main’. 那么这个错误信息可能与文件c0s.ob ...
- INNO setup 制作安装包
1.获取SQLserver安装路径vardbpath:string;rtn:boolean;rtn := RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWA ...
- C++中对sprintf()函数的说明(转)
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望.由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出 ...
- css属性之appearance
appearance 属性允许您使元素看上去像标准的用户界面元素. 案例: 使 div 元素看上去像一个按钮 <!DOCTYPE html> <html> <head&g ...
- HDOJ(HDU) 1562 Guess the number(水题,枚举就行)
Problem Description Happy new year to everybody! Now, I want you to guess a minimum number x betwwn ...
- Android通过长按图片设置为壁纸
用imageview控件为他添加长按事件: imageview.setOnLongClickListener(new OnLongClickListener(){ public boolean onL ...
- codeforces284 div1 B:概率dp
蛋疼的期末..好久没有A题了,,惭愧啊 昨晚打起精神准备做cf 结果竟然忘记注册了..拿学长号看了看题,今早起来补了一道dp 题目大意: 有n首歌,你需要边听边猜 对于第 i 首歌 每听一分钟你猜出它 ...