S4全球总决赛(2)南邮NOJ2059

S4全球总决赛(2)

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 70            测试通过 : 47 

题目描述

    听完了贲贲的预测结果与方法后,yuman提出了一点问题:为何胜率是固定的呢?

    我们知道,比赛场上瞬息万变,影响胜率的因素太多了,所以用固定的胜率去预测最后的结果肯定是不科学的,因此让我们更全面地来思考这个问题:

    总决赛仍然是五局三胜制,但每盘的胜率不一定相等,请你再次计算最后皇族的胜率;



输入

先输入一个正整数T,表示有T组测试数据(1<=T<=100)

对于每一个测试数据,分别输入5个浮点数,分别表示皇族在第i盘的胜率pi(0<=pi<=1)

输出

输出一个浮点数ans(0<=ans<=1),表示皇族的最终胜率,结果保留6位小数;

样例输入

2
1 1 1 1 1
0.1 0.2 0.3 0.4 0.5

样例输出

1.000000
0.150000

提示

定义浮点数时,请均使用double类型


总的感受就是,跟(1)类似,还好比赛次数是固定的~

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<set>
#include<map>
#include<vector>
#include<stack>
#include<cmath>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
    int T;
    cin>>T;
    while(T--!=0)
    {
        double a[5],ens=1,fns=0,gns=0;
        for(int i=0;i<5;i++)
        cin>>a[i];
        for(int i=0;i<5;i++)
        {
            ens*=a[i];
        }
        fns=(1-a[0])*a[1]*a[2]*a[3]*a[4]+a[0]*(1-a[1])*a[2]*a[3]*a[4]+a[0]*a[1]*(1-a[2])*a[3]*a[4]+
        a[0]*a[1]*a[2]*(1-a[3])*a[4]+a[0]*a[1]*a[2]*a[3]*(1-a[4]);
        gns=(1-a[0])*(1-a[1])*a[2]*a[3]*a[4]+(1-a[0])*(1-a[2])*a[1]*a[3]*a[4]+(1-a[0])*a[1]*(1-a[3])*a[2]*a[4]+(1-a[0])*a[1]*a[2]*(1-a[4])*a[3]+
        a[0]*(1-a[1])*a[4]*a[3]*(1-a[2])+(1-a[1])*a[0]*a[2]*(1-a[3])*a[4]+(1-a[1])*a[0]*a[2]*a[3]*(1-a[4])+
        a[0]*(1-a[2])*a[1]*(1-a[3])*a[4]+a[0]*a[1]*(1-a[2])*a[3]*(1-a[4])+
        a[0]*a[1]*a[2]*(1-a[3])*(1-a[4]);
        printf("%.6f
",ens+fns+gns);
    }
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/Tobyuyu/p/4965655.html