zoukankan      html  css  js  c++  java
  • poj3071 Football

    Football

     POJ - 3071 

    题目大意:

    2^n个队进行足球赛,每个队打败另外一个队都有一个概率。问最后胜利的概率最大的是哪只球队。

    /*
        设f[j][i]表示第j支球队通过第i场比赛的概率,则:f[j][i]=sum(f[j][i-1]*f[j+k][i-1]*p[j][j+k]),其中j+k是它这一场可能面对的对手,实际上就是它上一场比赛的第一支队伍加2^(i-1)一直加到2^1 
    */
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int n,n1;
    double f[8][200],p[200][200];
    int main(){
        while(1){
            scanf("%d",&n);
            if(n==-1)return 0;
            memset(f,0,sizeof(f));
            n1=1<<n;
            for(int i=0;i<n1;i++)
                for(int j=0;j<n1;j++)
                    scanf("%lf",&p[i][j]);
            for(int i=0;i<n1;i++)f[0][i]=1;
            for(int i=1;i<=n;i++){
                for(int j=0;j<n1;j++){
                    int t=j/(1<<(i-1));
                    t^=1;
                    f[i][j]=0;
                    for(int k=t*(1<<(i-1));k<t*(1<<(i-1))+(1<<(i-1));k++){
                        f[i][j]+=f[i-1][j]*f[i-1][k]*p[j][k];
                    }
                }
            }
            int ans;
            double tmp=0;
            for(int i=0;i<n1;i++){
                if(f[n][i]>tmp){
                    ans=i+1;
                    tmp=f[n][i];
                }
            }
            printf("%d
    ",ans);
        }
    }
  • 相关阅读:
    golang-----giao起来
    Django-----你醒了吗?
    linux
    dapper之连接数据库(Oracle,SQL Server,MySql)
    mongodb 物理删除数据
    一生难得的偶遇
    奇怪的电话
    我的魔兽争霸
    第四章 吃饭
    第三章 百花谷
  • 原文地址:https://www.cnblogs.com/thmyl/p/7580111.html
Copyright © 2011-2022 走看看