

POJ 3071 Football
source link: https://blog.woshiluo.com/1783.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

POJ 3071 Football
1 题目大意
给定 2n 个整数,从 1 到 2n 编号
给定 pi,j(1≤i≤n,1≤j≤n)
定义一次操作为
选中 2k 和 2k+1 ( 0≤k,k∈Z,2k+1≤n )
其中有 p2k,2k+1 的概率选中 2k
其中有 p2k+1,2k 的概率选中 2k+1
把所有选择的数字组成一个新的数列,大小为 n2
显然最后会只剩 1 个数字
问剩哪个数字的概率最大
这东西显然是个满二叉树,大力 dfs,每次分成两半
每次向上的时候,把两边概率和一下,就没事了
3 Code
#include <cstdio>
const int N = 1100;
int n;
double p[N][N];
double f[N];
void dfs( int left, int rig ) {
if( left == rig ) {
f[left] = 1;
return ;
}
int mid = ( left + rig ) >> 1;
dfs( left, mid );
dfs( mid + 1, rig );
double la[N];
for( int i = left; i <= rig; i ++ )
la[i] = f[i];
for( int i = left; i <= mid; i ++ ) {
double cur = f[i];
f[i] = 0;
for( int j = mid + 1; j <= rig; j ++ ) {
f[i] += ( cur * la[j] * p[i][j] );
}
}
for( int i = mid + 1; i <= rig; i ++ ) {
double cur = f[i];
f[i] = 0;
for( int j = left; j <= mid; j ++ ) {
f[i] += ( cur * la[j] * p[i][j] );
}
}
}
int main() {
#ifdef woshiluo
freopen( "poj.3071.in", "r", stdin );
freopen( "poj.3071.out", "w", stdout );
#endif
while(1) {
scanf( "%d", &n );
if( n == -1 )
break;
n = ( 1 << n );
for( int i = 1; i <= n; i ++ ) {
for( int j = 1; j <= n; j ++ ){
scanf( "%lf" ,&p[i][j] );
}
}
dfs( 1, n );
int max_id = 0;
for( int i = 1; i <= n; i ++ ) {
if( f[i] > f[ max_id ] )
max_id = i;
}
printf( "%d\n", max_id );
}
}
Recommend
-
4
Armin's BlogPOJ 1611 The Suspects(并查集)November 28, 2015题目链接 题意:非典时期,共有 n 个人(标号 0~n-1),分成 m 组。第一行输入 n(0...
-
13
Armin's BlogPOJ 2524 Ubiquitous Religions(并查集)November 29, 2015题目链接 题意:调查学校的学生宗教信仰情况,第一行输入 n(总人数)和 m,...
-
10
poj 1455 Crazy tea party 2013-10-03 分类:ACM 阅读(4401) 评论(0) 这道题第一眼看去很难,其...
-
19
poj 1503 高精度加法 2013-09-07 分类:未分类 阅读(4401) 评论(0) 把输入...
-
9
poj 1205 :Water Treatment Plants (DP+高精度) 题意:有n个城市,它们由一个污水处理系统连接着,每个城市可以选择1、将左边城市过来的污水和右边城市过来的污水连同本身的污水排到河里 >V<2、将左边来的污水连同自己的污水排...
-
15
poj 2155 Matrix (二维树状数组) 2013-08-31 分类:未分类 阅读(4293) 评论(0) ...
-
7
poj 1990 MooFest 树状数组 2013-08-24 分类:未分类 阅读(4320) 评论(0) ...
-
1
poj.org is broken? poj.org is broken?
-
4
Counterfeit Dollar POJ 1013 - Counterfeit Dollar Time: 1000MS Memory: 10000K 难度: 初级 ...
-
8
POJ 1840 POJ 1840 - Eqs Time: 5000MS Memory: 65536K 难度: 初级 分类: 高效查找法
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK