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$获胜的概率 ...
随机推荐
- Sicily shortest path in unweighted graph
题目介绍: 输入一个无向图,指定一个顶点s开始bfs遍历,求出s到图中每个点的最短距离. 如果不存在s到t的路径,则记s到t的距离为-1. Input 输入的第一行包含两个整数n和m,n是图的顶点 ...
- 转:virtualbox+ubuntu设置共享文件夹
1. 进入系统,安装增强功能,安装完关闭系统. 2. 在E盘下创建一个共享文件夹 gongxiang. 3. 设置->数据空间->固定分配,选择共享文件 ...
- owncloud乱码问题
没有人回答那我就献丑了,废话有点多,请跳着看. 先说结论:最后我选择了 Seafile 我去年之前用box同步个人文件,前几个月的时候吧,发现box不能上传几百M的文件,我才知道之前为什么会丢文件了… ...
- Linux下配置QT环境
一.下载Qt源码包到本机,然后解压缩 #tar zxvf qt-x11-opensource-src-4.3.2.tar.gz -C /usr/local //将qt-x11-opensource-s ...
- 利用dbms_backup_restore恢复数据库
测试环境:OEL+11.2.0.1 实例名:orcl2 DBID:1336959433 场景:Oracle数据库的存储坏了,数据文件和控制文件全部丢失,只有数据文件的备份集,且备份集中无控制文件.(当 ...
- 2015第27周三Java内存模型
自己写的代码,6个月不看也是别人的代码,自己学的知识也同样如此,学完的知识如果不使用或者不常常回顾,那么还不是自己的知识. 要认识java线程安全,必须了解两个主要的点:java的内存模型,java的 ...
- iOS开发手记 - iOS9.3 Xcode7打包ipa文件在其他越狱机器上运行的方法和一些问题
现在Xcode7可以用一个appleid就可以往手机上部署测试app,不再需要$99,这也是方便.但是要把app发给别人的手机上运行还是不行,除非别人的手机在你身边可以直接通过Xcode安装 关于怎么 ...
- Java---设计模块(单例的变形)(多例)
设计模式1--单例变形(多例) ★ 缓存在单例中的使用 缓存在编程中使用很频繁,有着非常重要的作用,它能够帮助程序实现以空间换取时间,通常被设计成整个应用程序所共享的一个空间,现要求实现一个用缓存存放 ...
- openstack debugs
- Scala-逻辑判断
package com.mengyao.scala.function /** * Scala的逻辑判断 * * @author mengyao */object Test2 { def main(ar ...