题目大意,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的更多相关文章

  1. 【poj3071】 Football

    http://poj.org/problem?id=3071 (题目链接) 题意 ${2^n}$个队伍打淘汰赛,输的被淘汰.第1个队打第2个队,第3个队打第4个队······给出第i个队伍打赢第j个队 ...

  2. poj3071 Football(概率dp)

    poj3071 Football 题意:有2^n支球队比赛,每次和相邻的球队踢,两两淘汰,给定任意两支球队相互踢赢的概率,求最后哪只球队最可能夺冠. 我们可以十分显然(大雾)地列出转移方程(设$f[ ...

  3. 【POJ3071】Football - 状态压缩+期望 DP

    Description Consider a single-elimination football tournament involving 2n teams, denoted 1, 2, …, 2 ...

  4. Football(POJ3071)

    Football Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3469   Accepted: 1782 Descript ...

  5. poj3071 Football

    学习位运算在比赛的技巧 http://poj.org/problem?id=3071 Football Time Limit: 1000MS   Memory Limit: 65536K Total ...

  6. POJ3071:Football(概率DP)

    Description Consider a single-elimination football tournament involving 2n teams, denoted 1, 2, …, 2 ...

  7. Football 概率DP poj3071

                                                                                                 Footbal ...

  8. POJ3071 Football 概率DP 简单

    http://poj.org/problem?id=3071 题意:有2^n个队伍,给出每两个队伍之间的胜率,进行每轮淘汰数为队伍数/2的淘汰赛(每次比赛都是相邻两个队伍进行),问哪只队伍成为冠军概率 ...

  9. [poj3071]football概率dp

    题意:n支队伍两两进行比赛,求最有可能获得冠军的队伍. 解题关键:概率dp,转移方程:$dp[i][j] +  = dp[i][j]*dp[i][k]*p[j][k]$表示第$i$回合$j$获胜的概率 ...

随机推荐

  1. javascript触发input-file的click事件

    概述 input:file本身自带的样式不太好看,但是又没法设置样式. 由于系统限制,不能通过代码触发,只允许用户自主点击. 通常的解决办法是,把input:file透明化,实际上点击的还是input ...

  2. Python一路走来 - python基础 数据类型

    对于Python,一切事物都是对象,对象基于类创建 Python数据类型 python主要的数据类型主要包括以下几种类型: (1) 数字型 (2) 字符串 (3) 列表 (4) 元组 (5) 字典 ( ...

  3. Python Socket Programming

    本文介绍使用Python进行Socket网络编程,假设读者已经具备了基本的网络编程知识和Python的基本语法知识,本文中的代码如果没有说明则都是运行在Python 3.4下. Python的sock ...

  4. OpenStack点滴03-Neutron

    OpenStack Neutron是一个比较复杂的组件,如果说OpenStack安装部署过程哪一个组件最麻烦,那就肯定是网络组件Neutron了. 因为我对OpenStack网络这块也不是很熟,就把我 ...

  5. template of class

    class template will call the constructor of its member object before constructor itself......

  6. java-map-EnumMap

    在平常的项目中,enumMap是比较少用到的一种map,一般都不会使用到这种容器,那么我将从如下几个方面来阐述我对enumMap的理解 1.使用场景 在key是比较固定的情况下,使用enumMap是最 ...

  7. linux 命令行更新sdk

    ./android list sdk --proxy-host android-mirror.bugly.qq.com --proxy-port 8080 --no-ui -a -s ./androi ...

  8. iPhone开发:Objective C 代码规范-iOS总结版

    一,关于空行 A:.h中的空行 1,文件说明与头文件包涵(#import)之间空1行 2,头文件包涵(#import)之间,如果需要分类区别,各类别之间空1行 3,头文件包涵(#import)与@cl ...

  9. findstr 只搜寻指定文件类型

    Title:findstr 只搜寻指定文件类型 --2012-05-04 09:27 findstr /i /m /S /C:"关键字"  *.php *.asp *.jsp

  10. 对libssh的golang 封装 ssh2go

    ssh2go 是对libssh的go语言绑定.libssh作为ssh的实现库,支持SSHv2和SSHv1的客户.服务端实现,通过libssh你可以远程执行程序.拷贝文件等等. ssh2go不像其他go ...