S4全球总决赛(2)
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 70 测试通过 : 47
总提交 : 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\n",ens+fns+gns);
}
return 0;
}