2018.10.04 NOIP模擬 排隊(組合數學)
阿新 • • 發佈:2018-12-13
描述
在成都某中學有m個男生與n個女生排隊,這個學校的女生比較古怪,從某個位置(包含這個位置)開始往前數,男生的數量超過了女生的數量,女生會感覺不安全,於是會大叫起來,為了構建和諧校園,安排隊伍時應該避免這樣的情況。請你計算出不會引發尖叫的排隊方案的概率。(排隊方案不同定義:當且僅當某個某個位置人不一樣,如男生A、男生B ,與男生B、男生A ,2個排列是不同方案)
輸入
第一行1個整數, 表示測試資料的組數。 每個資料 有兩個數 N,M(N個女生,M個男生)
輸出
對於每組資料,輸出一個實數(保留到小數點後 6 位)
樣例輸入
3 1 0 0 1 1 1
樣例輸出
1.000000 0.000000 0.500000
提示
【 Hint】 第一組:只有一個女生,一種方案且可行 第二組:只有1個男生,一種方案且不行 第三組:兩種方案 女、男可行,男、女不可行,可行概率0.5
【資料規模】
30%的資料: (測試組數<=10),(0<=N,M<=1000). 100%的資料: (測試組數=9008 ), ( 0<=N,M<=20000 ).
T2原題啊。 直接組合數學求出合法方案數,再除去一個: 程式碼:
#include<bits/stdc++.h>
#define N 100005
using namespace std;
int t,n,m;
int main(){
freopen("fseq.in","r",stdin);
freopen("fseq.out","w",stdout);
scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&m);
if(n<m){puts("0.000000");continue;}
printf("%.6lf\n",(double)((double)n+1-m)/((double)n+1));
}
return 0;
}