标签:now int pos dfs ans need 一题 4.30 4.26
文章目录
4.26比赛
题目大意:给出12道题做出的概率,问做出0-12道题目的概率
/*
4.26 比赛 :https://ac.nowcoder.com/acm/problem/14734
对于每一个题目要么做出,要么做不出,利用dfs进行判断即可
// 还有一种dp做法,未完待续......
*/
#include<bits/stdc++.h>
using namespace std;
const int N = 15;
double a[N], b[N], c[N], un[N];
double ans;
void dfs(int pos, int now, int need, double p)
{
if(pos == 13) // 当所有题目都写完了
{
if(now == need) { // 达到了需要
ans += p;
}
return ;
} // 判断该题做不做出来
if(now < need )
dfs(pos + 1, now + 1, need, p * (1 - un[pos]));
dfs(pos + 1, now, need, p * un[pos]);
}
int main()
{
for (int i = 1; i <= 12; ++i) cin >> a[i];
for (int i = 1; i <= 12; ++i) cin >> b[i];
for (int i = 1; i <= 12; ++i) cin >> c[i];
// 一道题做不出来:自己做不出,没听到左边也没听到右边
for (int i = 1; i <= 12; ++i) un[i] = (1-a[i]) * (1-b[i]) * (1-c[i]);
for (int i = 1; i <= 13; ++i)
{
ans = 0;
dfs(1, 0, i - 1, 1);
printf("%.6f\n", ans);
}
return 0;
}
标签:now,int,pos,dfs,ans,need,一题,4.30,4.26 来源: https://blog.csdn.net/ecjtu2020/article/details/116172357
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。