poj 3071 Football <DP>
链接:http://poj.org/problem?id=3071
题意: 有 2^n 支足球队,编号 1~2^n,现在给出每支球队打败其他球队的概率,问哪只球队取得冠军的概率最大?
思路:
设dp[i][j] 为第 i 轮, 第 j 支球队胜的概率~
那么dp[i][j]=dp[i-1][j] * ∑dp[i-1][k]*p[j][k] , k 为相应轮 j 可能面对的对手~
那么在第 i 轮, 第 j 队的对手怎样尽快求得呢, (j从0开始)~
对于第一轮,其可能的对手只有一个 为 j^1, 第 i 轮时其可能的对手有 2^(i-1)个,
而其第一个的位置为 (j^1)>>(i-1)<<(i-1) 共 2^(i-1) 个~
#include <stdio.h>
double p[][];
double dp[][];
int main()
{
int n,i,j,k,start,num; while(scanf("%d",&n),n!=-){
int size=<<n, ans=;
for(i=;i<size;i++)
for(j=;j<size;j++){
scanf("%lf",&p[i][j]);
}
for(i=;i<size;i++){
dp[][i]=1.0;
}
for(k=;k<=n;k++){
for(i=;i<size;i++){
dp[k][i]=0.0;
num=<<(k-);
start=(((i>>(k-))^)<<(k-));
for(j=start;j<num+start;j++){
dp[k][i]+=dp[k-][j]*p[i][j];
}
dp[k][i]*=dp[k-][i];
if(k==n){
if(dp[n][i]>dp[n][ans]){
ans=i;
}
}
}
} printf("%d\n",ans+);
}
return ;
}
poj 3071 Football <DP>的更多相关文章
- poj 3071 Football(概率dp)
id=3071">http://poj.org/problem? id=3071 大致题意:有2^n个足球队分成n组打比赛.给出一个矩阵a[][],a[i][j]表示i队赢得j队的概率 ...
- POJ 3071 Football:概率dp
题目链接:http://poj.org/problem?id=3071 题意: 给定n,有2^n支队伍参加足球赛. 给你所有的p[i][j],表示队伍i打败队伍j的概率. 淘汰赛制.第一轮(1,2)两 ...
- POJ 3071 Football
很久以前就见过的...最基本的概率DP...除法配合位运算可以很容易的判断下一场要和谁比. from——Dinic算法 Football Time ...
- POJ 3071 Football 【概率DP】
Football Football Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3734 Accepted: 1908 ...
- poj 3071 Football (概率DP水题)
G - Football Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit ...
- poj 3071 Football(线段树+概率)
Football Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2801 Accepted: 1428 Descript ...
- POJ 3071 Football(概率DP)
题目链接 不1Y都对不住看过那么多年的球.dp[i][j]表示i队进入第j轮的概率,此题用0-1<<n表示非常方便. #include <cstdio> #include &l ...
- POJ 3071 Football (概率DP)
概率dp的典型题.用dp[j][i]表示第j个队第i场赢的概率.那么这场要赢就必须前一场赢了而且这一场战胜了可能的对手.这些都好想,关键是怎么找出当前要算的队伍的所有可能的竞争对手?这个用异或来算,从 ...
- 【POJ 3071】 Football(DP)
[POJ 3071] Football(DP) Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4350 Accepted ...
随机推荐
- Codeforces Gym100814 F.Geometry (ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (2015) Arab Academy for Science and Technology)
这个题真的是超级超级水啊,哈哈哈哈哈哈.不要被题面吓到,emnnn,就这样... 代码: 1 #include<iostream> 2 #include<cstring> 3 ...
- 渗透测试集成环境Faraday
渗透测试集成环境Faraday Kali Linux集成了海量的渗透测试工具.但是这些工具在使用的时候,还是分离的.虽然用户可以通过Shell.日志/报告导入导出功能等方式,进行整合,但是仍然不便 ...
- MySQL OCP
http://www.royalwzy.com/ http://www.aixchina.net/home/space.php?uid=898169
- Putty完全使用方法
http://www.putty.ws/Putty-wanquanshiyong putty中文站
- django常用第三方app大全
djangoapp 资源大全 最近经常在这个版面看到Django相关扩展的介绍,而其一个扩展写一个帖子,觉得没太必要吧. 以前整理的django资源列表,从我的wiki上转过来的. 要找django资 ...
- EasyMvc入门教程-基本控件说明(13)选项卡导航
选项卡Tab导航主要用于企业页面显示不同子类或者子页面的信息内容. 先来一个基本的使用例子:代码如下: @{ var data = new List<TabItem>() { new Ta ...
- Android WiFi开发教程(一)——WiFi热点的创建与关闭
相对于BlueTooth,WiFi是当今使用最广的一种无线网络传输技术, 几乎所有智能手机.平板电脑和笔记本电脑都支持Wi-Fi上网.因此,掌握基本的WiFI开发技术是非常必要的.本教程将围绕一个小D ...
- 压缩软件Snappy的安装
1.下载源码,通过编译源码安装 tar -zxvf /home/zfll/soft/snappy-1.1.2.tar.gz cd snappy-1.1.2 ./configure make sud ...
- mysql数据库查看各实例磁盘占用情况
1.总体查看: use information_schema; select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' ...
- tomcat启动项目,起不起来
右键tomcat 选择publish