题目链接

不1Y都对不住看过那么多年的球。dp[i][j]表示i队进入第j轮的概率,此题用0-1<<n表示非常方便。

 #include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
double dp[][];
double p[][];
int main()
{
int n,i,j,mod,c,k,ans;
double maxz;
while(scanf("%d",&n)!=EOF)
{
if(n < ) break;
for(i = ;i < (<<n);i ++)
{
for(j = ;j < (<<n);j ++)
{
scanf("%lf",&p[i][j]);
}
}
for(i = ;i < (<<n);i ++)
{
dp[][i] = ;
}
for(i = ;i <= n;i ++)
{
for(j = ;j < (<<n);j ++)
dp[i][j] = ;
}
for(i = ;i <= n;i ++)
{
for(j = ;j < (<<n);j ++)
{
mod = j%(<<i);
if(mod >= (<<(i-)))
{
c = (j/(<<i))*(<<i);
for(k = ;k < (<<(i-));k ++)
{
dp[i][j] += dp[i-][j]*dp[i-][c+k]*p[j][c+k];
}
}
else
{
c = (j/(<<i))*(<<i)+(<<(i-));
for(k = ;k < (<<(i-));k ++)
{
dp[i][j] += dp[i-][j]*dp[i-][c+k]*p[j][c+k];
}
}
}
}
ans = ;maxz = ;
for(i = ;i < (<<n);i ++)
{
if(maxz < dp[n][i])
{
ans = i;
maxz = dp[n][i];
}
}
printf("%d\n",ans+);
}
return ;
}

POJ 3071 Football(概率DP)的更多相关文章

  1. poj 3071 Football (概率DP水题)

    G - Football Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit ...

  2. poj 3071 Football(概率dp)

    id=3071">http://poj.org/problem? id=3071 大致题意:有2^n个足球队分成n组打比赛.给出一个矩阵a[][],a[i][j]表示i队赢得j队的概率 ...

  3. POJ 3071 Football (概率DP)

    概率dp的典型题.用dp[j][i]表示第j个队第i场赢的概率.那么这场要赢就必须前一场赢了而且这一场战胜了可能的对手.这些都好想,关键是怎么找出当前要算的队伍的所有可能的竞争对手?这个用异或来算,从 ...

  4. POJ 3071 Football

    很久以前就见过的...最基本的概率DP...除法配合位运算可以很容易的判断下一场要和谁比.    from——Dinic算法                         Football Time ...

  5. POJ3071:Football(概率DP)

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

  6. POJ 3156 - Interconnect (概率DP+hash)

    题意:给一个图,有些点之间已经连边,现在给每对点之间加边的概率是相同的,问使得整个图连通,加边条数的期望是多少. 此题可以用概率DP+并查集+hash来做. 用dp(i,j,k...)表示当前的每个联 ...

  7. poj 1322 Chocolate (概率dp)

    ///有c种不同颜色的巧克力.一个个的取.当发现有同样的颜色的就吃掉.去了n个后.到最后还剩m个的概率 ///dp[i][j]表示取了i个还剩j个的概率 ///当m+n为奇时,概率为0 # inclu ...

  8. [poj3071]football概率dp

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

  9. POJ 3071 Football:概率dp

    题目链接:http://poj.org/problem?id=3071 题意: 给定n,有2^n支队伍参加足球赛. 给你所有的p[i][j],表示队伍i打败队伍j的概率. 淘汰赛制.第一轮(1,2)两 ...

随机推荐

  1. Bmob用户管理操作

    注册用户 BmobUser bu = new BmobUser(); bu.setUsername("sendi"); bu.setPassword("123456&qu ...

  2. Javascript之十大常用原理性样例大总结

    案例一:全选等 运用知识点:ondblclick=()| onclick | 寻找标签属性及判断和函数的应用

  3. 快速传输大数据(tar+lz4+pv)

    快速传输大数据(tar+lz4+pv)   如果用传统SCP远程拷贝,速度是比较慢的.现在采用lz4压缩传输.LZ4是一个非常快的无损压缩算法,压缩速度在单核300MB/S,可扩展支持多核CPU.它还 ...

  4. Java for LeetCode 031 Next Permutation

    Next Permutation Total Accepted: 33595 Total Submissions: 134095     Implement next permutation, whi ...

  5. 【回溯】n皇后问题

    问题 U: [回溯]n皇后问题 时间限制: 1 Sec  内存限制: 128 MB提交: 4  解决: 4[提交][状态][讨论版] 题目描述 在一个国际象棋棋盘上,放置n个皇后(n<10),使 ...

  6. HDU2050离散数学折线分割平面

    折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  7. 一、HTML和CSS基础--开发工具--Sublime前端开发工具技巧介绍

    下载:官网下载(根据系统下载) 安装:按步骤安装即可 注意:当前稳定版本为2,但3的功能有提升:Mac和Windows下的快捷键不同 优点:启动速度快,界面简洁,可以直接打开图片. 1 菜单栏主要功能 ...

  8. 在WINDOWS上通过VAGRANT练习ANSIBLE

    有点曲折,但没办法,还要通过VAGRANT里的ANSIBLE建DOCKER呢.. VagrantFile # -*- mode: ruby -*- # vi: set ft=ruby : Vagran ...

  9. Xamarin.Android开发实践(十五)

    Xamarin.Android学习之应用程序首选项 一.前言 任何App都会存在设置界面,如果开发者利用普通控件并绑定监听事件保存设置,这 一过程会非常的枯燥,而且耗时.我们可以看到Android系统 ...

  10. go编写简单的web服务器

    package main import ( "fmt" "log" "net/http" "strings" ) //h ...