Bzoj3093 [Fdu校赛2012] A Famous Game

Posted SilverNebula

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bzoj3093 [Fdu校赛2012] A Famous Game相关的知识,希望对你有一定的参考价值。

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 251  Solved: 136

Description

Mr. B and Mr. M like to play with balls. They have many balls colored in blue and red. Firstly, Mr. B randomly picks up N balls out of them and put them into a bag. Mr. M knows that there are N+1 possible situations in which the number of red balls is ranged from 0 to N, and we assume the possibilities of the N+1 situations are the same. But Mr. M does not know which situation occurs. Secondly, Mr. M picks up P balls out of the bag and examines them. There are Q red balls and P-Q blue balls. The question is: if he picks up one more ball out of the bag, what is the possibility that this ball is red?

Input

Each test case contains only one line with three integers N, P and Q (2 <= N <= 100,000, 0 <= P <= N-1, 0 <= Q <= P).

Output

 
For each test case, display a single line containing the case number and the possibility of the next ball Mr. M picks out is red. The number should be rounded to four decimal places.

Sample Input



3 0 0
4 2 1

Sample Output


Case 1: 0.5000
Case 2: 0.5000

HINT

 



[Explanation] 

For example as the sample test one, there are three balls in the bag. The possibilities of the four possible situations are all 0.25. If there are no red balls in the bag, the possibility of the next ball are red is 0. If there is one red ball in the bag, the possibility is 1/3. If there are two red balls, the possibility is 2/3. Finally if all balls are red, the possibility is 1. So the answer is 0*(1/4)+(1/3)*(1/4)+(2/3)*(1/4)+1*(1/4)=0.5.

 

Source

 

数学问题 概率

推出来答案就是(q+1)/(p+2)

可能是近一年写过最短的代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
const int mxn=100010;
int read(){
    int x=0,f=1;char ch=getchar();
    while(ch<0 || ch>9){if(ch==-)f=-1;ch=getchar();}
    while(ch>=0 && ch<=9){x=x*10-0+ch;ch=getchar();}
    return x*f;
}
int n,p,q;
int main(){
    int cas=0;
    while(scanf("%d%d%d",&n,&p,&q)!=EOF){
        printf("Case %d: %.4f\n",++cas,(q+1.0)/(p+2.0));
    }
    return 0;
}

 

以上是关于Bzoj3093 [Fdu校赛2012] A Famous Game的主要内容,如果未能解决你的问题,请参考以下文章

bzoj 2730: [HNOI2012]矿场搭建

bzoj 1015: [JSOI2008]星球大战starwar

bzoj2806 [Apio2012]dispatching可并堆

P3093 [USACO13DEC]牛奶调度Milk Scheduling——贪心

BZOJ2049,2631,3282,1180LCT模板四连A

2733: [HNOI2012]永无乡