POJ 3071
求概率。其实跟枚举差不多,输入n即是要进行n轮比赛。对每一支球队,设求1的概率,首先1要与2比赛为p1,这是第一轮,第二轮时,1要与3(打败3为p2),4(打败4为p3)中胜者比赛,由于是概率,则两者都要比,求出概率。所以,1要在第二轮胜的概率=p1*(p2*3第一轮胜出的概率+p3*4在第一轮胜出概率)。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm> using namespace std; double def[130][130];
double p[8][130]; int main(){
int n,ttp,bgn,ed,pos;
while(scanf("%d",&n)!=EOF){
if(n==-1) break;
for(int i=1;i<=(1<<n);i++)
for(int j=1;j<=(1<<n);j++)
scanf("%lf",&def[i][j]);
int tot=(1<<n);
for(int i=1;i<=tot;i++)
p[0][i]=1;
for(int i=1;i<=n;i++){
pos=1;
while(pos<=tot){
ttp=pos;
bgn=ttp+(1<<(i-1));
ed=bgn+(1<<(i-1))-1;
for(int k=ttp;k<ttp+(1<<(i-1));k++){
double sum=0;
for(int j=bgn;j<=ed;j++)
sum+=(p[i-1][j]*def[k][j]);
p[i][k]=sum*p[i-1][k];
}
ttp=pos+(1<<(i-1));
bgn=pos; ed=bgn+(1<<(i-1))-1;
for(int k=ttp;k<ttp+(1<<(i-1));k++){
double sum=0;
for(int j=bgn;j<=ed;j++)
sum+=(p[i-1][j]*def[k][j]);
p[i][k]=sum*p[i-1][k];
}
pos+=(1<<i);
}
}
int ans=1;
for(int i=1;i<=tot;i++)
if(p[n][i]>p[n][ans])
ans=i;
printf("%d\n",ans);
}
return 0;
}
POJ 3071的更多相关文章
- 【POJ 3071】 Football(DP)
[POJ 3071] Football(DP) Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4350 Accepted ...
- 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 题意: 有 2^n 支足球队,编号 1~2^n,现在给出每支球队打败其他球队的概率,问哪只球队取得冠军的概率最大? 思路: 设dp[ ...
- POJ 3071 Football:概率dp
题目链接:http://poj.org/problem?id=3071 题意: 给定n,有2^n支队伍参加足球赛. 给你所有的p[i][j],表示队伍i打败队伍j的概率. 淘汰赛制.第一轮(1,2)两 ...
- 【POJ 3071】 Football
[题目链接] http://poj.org/problem?id=3071 [算法] 概率DP f[i][j]表示第j支队伍进入第i轮的概率,转移比较显然 [代码] #include <algo ...
- poj 3071 可能DP
http://poj.org/problem? id=3071 推方程不难,可是难在怎么算 dp[i][j]表示第i场时第j仅仅队伍存活下来的概率 方程:dp[i][j]=sigma(dp[i-1][ ...
- POJ 3071 Football
很久以前就见过的...最基本的概率DP...除法配合位运算可以很容易的判断下一场要和谁比. from——Dinic算法 Football Time ...
- POJ 3071 Football(概率DP)
题目链接 不1Y都对不住看过那么多年的球.dp[i][j]表示i队进入第j轮的概率,此题用0-1<<n表示非常方便. #include <cstdio> #include &l ...
- poj 3071 概率dp
转自:cxlove 题目:有2^n个队,相邻的两两打淘汰赛,,求最后哪个队夺冠的概率最大 dp[i][j]表示第i轮的时候,第j去支队伍赢的概率. 那么dp[i][j]的前提就是i-1轮的时候,j是赢 ...
- 【以前的空间】Poj 3071 Cut the Sequence
dp+单调性+平衡树 在看某篇论文中看到这道题,但是那篇论文不如这个http://www.cnblogs.com/staginner/archive/2012/04/02/2429850.html 大 ...
随机推荐
- BA-楼宇自控系统设计论文(转载)潘翌庆 元晨
楼宇自控系统设计 潘翌庆 元晨 一.概述 楼宇自控系统(Building Automation System-BAS)是智能建筑中不可缺少的重要组成部分,在智能建筑中占有举足轻重的地位.它对建筑物内部 ...
- socketpair和pipe的区别
http://blog.csdn.net/bingqingsuimeng/article/details/9055499 管道pipe是半双工的,pipe两次才能实现全双工,使得代码复杂.socket ...
- HTML5实现歌词同步
开篇 HTML5的最强大之处莫过于对媒体文件的处理,如利用一个简单的vedio标签就能够实现视频播放.相似地,在HTML5中也有相应的处理音频文件的标签,那就是audio标签 在线Demo audio ...
- EntboostChat 0.9(越狱版)公布,iOS免费企业IM
恩布互联公布IOS免费企业IM 0.9越狱预览版本号,支持全部iPhone4/5手机(6未上真机測试),iPad平板,主要功能包含单聊.群聊,企业组织结构,文本.表情.图片.文件.截图.离线消息等: ...
- reactjs simple text editor
import React, { Component } from 'react' import PubSub from 'pubsub' import GlobalVars from 'globalV ...
- redis配置外部访问
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT 开放6379端口
- hdoj--5532--Almost Sorted Array(正反LIS)
Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- java.lang.NoClassDefFoundError: javax/servlet/ServletInputStream
转自:https://blog.csdn.net/y970105/article/details/355401 进入 tomcat根目录/lib/servlet-api.jar复制出来,放到JDK_P ...
- BZOJ 3720 树分块
借鉴了别人的代码-- //By SiriusRen #include <cmath> #include <cstdio> #include <cstring> #i ...
- HD-ACM算法专攻系列(22)——Max Sum
问题描述: AC源码: 此题考察动态规划,解题思路:遍历(但有技巧),在于当前i各之和为负数时,直接选择以第i+1个为开头,在于当前i各之和为正数时,第i个可以不用作为开头(因为前i+1个之和一定大于 ...