zoukankan      html  css  js  c++  java
  • 牛客竞赛-比赛

    题目描述

    你在打比赛,这场比赛总共有12个题

    对于第i个题,你的队伍有a[i]的几率解决她

    如果解决不了她呢?

    由于所有人讨论的都很大声

    所以你有b[i]的概率从左边那个队那里听会这个题的做法

    有c[i]的概率从右边那个队那里听会这个题的做法

    请问最终你们队伍解出0-12题的概率分别是多少

    输入描述:

    第一行12个数表示a[1] -> a[12]
    第二行12个数表示b[1] -> b[12]
    第三行12个数表示c[1] -> c[12]

    输出描述:

    输出13行,第i行表示解出i-1题的概率
    保留6位小数

    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    #define db double
    const int N=205,mod=999983;
    int n=12;db a[N],b[N],c[N],d[N];
    inline db dfs(int now,int num){
    	db ans=1;
    	if(now==13&&num)return 0;
    	if(now==13)return ans;
    	if(num==0){
    		for(int i=now;i<=12;i++)ans*=1-d[i];
    		return ans;
    	}
    	return ans*(dfs(now+1,num-1)*d[now]+dfs(now+1,num)*(1-d[now]));
    }
    signed main(){
    	for(int i=1;i<=n;i++)cin>>a[i];
    	for(int i=1;i<=n;i++)cin>>b[i];
    	for(int i=1;i<=n;i++)cin>>c[i];
    	db ans=1;
    	for(int i=1;i<=n;i++)
    	d[i]=1-((1-a[i])*(1-b[i])*(1-c[i])),ans*=(1-d[i]);
    	printf("%.6f
    ",ans);
    	for(int i=1;i<=n;i++){
    		printf("%.6f
    ",dfs(1,i));
    	}
    }
    
  • 相关阅读:
    04:求整数的和与均值
    03:均值
    02:财务管理
    C8-3 三角形还是长方形? (100/100 分数)
    C8-2 圆的周长和面积 (100/100 分数)
    C8-1 复数加减乘除 (100/100 分数)
    C7-3 用类实现a+b (100/100 分数)
    C7-2 多继承 (100/100 分数)
    C7-1 账户类(100/100)
    数组第k小数
  • 原文地址:https://www.cnblogs.com/naruto-mzx/p/11803522.html
Copyright © 2011-2022 走看看