2015浙工大校赛- Problem I: no2(概率题,贝叶斯公式)

题目链接:http://acm.zjut.edu.cn/onlinejudge/problem.php?cid=1101&pid=8

题面:

Problem I: no2

Time Limit: 1 Sec  Memory Limit: 32 MB

Submit: 342  Solved: 23

[Submit][Status][Web
Board
]

Description

已知有个市有n人,得了僵尸病的概率是p。你去参加了检测,检查出来是阳性。医生告诉你这次检测,得病的人检测出阳性的概率是r11,没得病的人检测出阳性的概率是r12。然后,为了保险起见,医生给你用了更好的药来检测,这次是阴性,这种药得病的人检测出阳性的概率是r21,没得病的人检测出来是阳性的概率r22。请问,你现在得病的概率是多少

Input

每行依次输入n,p,r11,r12,r21,r22

Output

每行输出概率,保留6位小数

Sample Input

1000 0.01 1 1 1 0

Sample Output

0.000000

题解:

概率论已经还给老师了,囧,知道是贝叶斯公式,却不记得了,最后还是臆想出来了!!

贝叶斯公式:

P(Ai|B)=P(B|Ai)P(Ai)/∑(P(B|Aj)P(Aj)) = P(B|Ai)P(Ai)/P(B)

臆想:

应该和贝叶斯差不多吧。

先算出第一种检测得病的概率为X,不得病的概率为1-X。然后用X代替P,再和第二次的数据计算一次,即为结果。

公式:

x=r1*p/(r1*p+(1-p)*r2);

ans=x*(1-r3)/(x*(1-r3)+(1-x)*(1-r4));

代码:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <iomanip>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <queue>
#include <cmath>
using namespace std;  

int main()
{
    int n;
    double p,r1,r2,r3,r4,ans,x1,x2;
    while(cin>>n>>p>>r1>>r2>>r3>>r4)
    {
        x1=r1*p/(r1*p+(1-p)*r2);
		ans=x1*(1-r3)/(x1*(1-r3)+(1-x1)*(1-r4));
        cout<<fixed<<setprecision(6)<<ans<<endl;
    }
    return 0;
}

Problem I: no2

Time Limit: 1 Sec  Memory Limit: 32 MB

Submit: 342  Solved: 23

[Submit][Status][Web
Board
]

Description

已知有个市有n人,得了僵尸病的概率是p。你去参加了检测,检查出来是阳性。医生告诉你这次检测,得病的人检测出阳性的概率是r11,没得病的人检测出阳性的概率是r12。然后,为了保险起见,医生给你用了更好的药来检测,这次是阴性,这种药得病的人检测出阳性的概率是r21,没得病的人检测出来是阳性的概率r22。请问,你现在得病的概率是多少

Input

每行依次输入n,p,r11,r12,r21,r22

Output

每行输出概率,保留6位小数

Sample Input

1000 0.01 1 1 1 0

Sample Output

0.000000
时间: 2024-11-05 21:56:41

2015浙工大校赛- Problem I: no2(概率题,贝叶斯公式)的相关文章

2015浙工大校赛-Problem C: 三角—— 费马大定理+勾股数

题目 有一个直角三角形三边为 A,B,C 三个整数.已知 C 为最长边长,求一组B,C,使得B和C最接近. (题目链接) 分析 打表找规律. 或者直接一点的枚举 $C-B$ 的值.(既然枚举 B 不现实,枚举差值是一种很好的思路啊,学习了 %%% 博客) 或者使用费马大定理(的一小部分), 当 $A$ 为奇数时($A > 1$),存在 $C-B = 1$ 的整数解使得 $A^2 + B^2 = C^2$: 当 $A$ 为偶数时 ($A > 2$),存在 $C-B = 2$ 的整数解使得 $A^

2014工大校赛题目以及解

a,b题不说. c题思路是每次枚举俩个点,用半径R确定最大的圆(这样的圆有俩个,求圆心手算有点小麻烦),更新最大值,3次方的,100个点,不会超时. D题是枚举+贪心,所有物品一共只能是N+1种被拿的情况:要么全是用R(该位子是若用右手标记R,若用左手标记L):RRR...RRR,或者第一个物品用L:LRRR...RR,.....依次到LLLLLL..LLL,一个序列来记录每个物品是被左手还是右手拿.枚举所有序列,如LLL...RRR,贪心:那必然是一次L一次R,多出来的需要额外开销能量.如LL

2014东北农大校赛--A. Paint it! (预处理)

1141: A.Paint it! Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 13  Solved: 10 [Submit][Status][Web Board] Description 有一个n*m的棋盘,每个格子只可能是黑和白两种颜色,你可以使用染料将某个格子染成黑色或者白色.求最少需要染多少个格子, 能使当前的棋盘变成类似于国际象棋的棋盘(每个格子临边的四个格子颜色都不与该格子的颜色相同). Input n m(n,m<=100) 接下

2014东北农大校赛--D.Cross the middle (任意两点最短路径 Floyd)

Cross the middle Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 36  Solved: 13 [Submit][Status][Web Board] Description n个点的图,给出任意两点之间的距离,m个询问,每次询问Mid是否可能出现在从Start到End的最短路径上. Input 第一行n,m 接下来是一个n*n的邻接矩阵,w[i][j]表示i到j的距离 接下来m行 每行start,end,mid N,m<=100,

HDU 5832 A water problem(某水题)

HDU 5832 A water problem(某水题) Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)   Problem Description - 题目描述 Two planets named Haha and Xixi in the universe and they were created with the universe beginning. There is

acm集训训练赛(二)D题【并查集】

一.题目 Description There is a town with N citizens. It is known that some pairs of people are friends. According to the famous saying that ?The friends of my friends are my friends, too? it follows that if A and B are friends and B and C are friends th

HDU 4902 Nice boat 2014杭电多校训练赛第四场F题(线段树区间更新)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4902 解题报告:输入一个序列,然后有q次操作,操作有两种,第一种是把区间 (l,r) 变成x,第二种是把区间 (l,r) 中大于x的数跟 x 做gcd操作. 线段树区间更新的题目,每个节点保存一个最大和最小值,当该节点的最大值和最小值相等的时候表示这个区间所有的数字都是相同的,可以直接对这个区间进行1或2操作, 进行1操作时,当还没有到达要操作的区间但已经出现了节点的最大值跟最小值相等的情况时,说明

HDU 4143 A Simple Problem(数论-水题)

A Simple Problem Problem Description For a given positive integer n, please find the smallest positive integer x that we can find an integer y such that y^2 = n +x^2. Input The first line is an integer T, which is the the number of cases. Then T line

zoj3862 intersection[2015浙大校赛C题]

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5474 题意: 按1-2n的编号给定2n个点以及n条线段,每个点属于且仅属于一条线段. 线段用端点的编号确定. 现在一次操作可以交换两个点的编号, 要求在不超过n+10次的操作后使得任意两条线段不相交. 输入保证任意两个点不重合,任意三个点不相交. 思路: 首先要明确,不是要求最少操作次数,只要不超过n+10次就可以. 所以一定有解: step 1: 点配对 把所有点按水