NC14734

感受
又被卡精度了,看来要理解出题组的意思。


两种求法,求解每一道题解出的概率
图片说明

求解完之后,就愉快地dfs

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
double p[15];
double ans[15], a[15], b[15], c[15];
double solve(double a, double b, double c){
    return 1.0 - (1.0 - a) * (1.0 - b) * (1.0 - c);
    //return a + (1.0 - a) * b + (1.0 - a) * c - (1.0 - a) * b * c;被卡精度了
}
void dfs(int k, double tmp, int rig_num){
    if(k == 13){
        ans[rig_num] += tmp;
        return ;
    }
    dfs(k + 1, tmp * p[k], rig_num + 1);
    dfs(k + 1, tmp * (1.0 - p[k]), rig_num);
}
int main(){
    for(int i = 1; i <= 12; i++){
        scanf("%lf", &a[i]);
    }
    for(int i = 1; i <= 12; i++){
        scanf("%lf", &b[i]);
    }
    for(int i = 1; i <= 12; i++){
        scanf("%lf", &c[i]);
    }
    for(int i = 1; i <= 12; i++){
        p[i] = solve(a[i], b[i], c[i]);
    }
    dfs(1, 1.0, 0);
    for(int i = 0; i <= 12; i++){
        printf("%.6f\n", ans[i]);
    }
    return 0;
}
全部评论

相关推荐

06-27 12:30
延安大学 C++
实习+外包,这两个公司底层融为一体了,如何评价呢?
一表renzha:之前面了一家外包的大模型,基本上都能答出来,那面试官感觉还没我懂,然后把我挂了,我都还没嫌弃他是外包,他把我挂了……
第一份工作能做外包吗?
点赞 评论 收藏
分享
05-19 15:21
已编辑
华南农业大学 Java
白火同学:你才沟通了200,说实话,北上广深杭这里面你连一座城市的互联网公司都没投满呢,更别说还有各种准一线二线城市了。等你沟通突破了三位数,还没结果再考虑转行的事吧。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务