牛客 D 扔硬幣(組合數)

2021-10-06 17:20:19 字數 1125 閱讀 7091

題目描述

有n枚硬幣,每枚硬幣扔出來是正面和反面的概率各佔50%。小明同時扔下了n枚硬幣後,已知至少有m枚硬幣是反面。請問恰好有k枚硬幣是正面的概率是多少。

輸入描述:

輸入t,代表有t組資料。每組資料輸入乙個數n,m,k,代表有n枚硬幣,丟擲以後至少有m枚是反面的情況下,恰好有k個正面的概率。

(t<=1000,n<1e5,m<=1000,k<=n)

輸出描述:

對於結果是p/q,輸出分數取模1e9+7後的結果。

示例1輸入

1103

5

輸出

思路:由於已知部分硬幣的方向。因此,扔n個硬幣的情況要在2的n次冪的中去掉少於m個硬幣是反面的情況。

對於k+m>n是不可能的,直接輸出0.

其餘情況:c(n,k)/[ 2^n - ∑(c(n,i)) ] (i#include

#include

#include

using

namespace std;

const

int n=

1e5+10;

const

int inf=

0x3f3f3f3f

;int mod=

1e9+7;

typedef

long

long ll;

ll fact[n]

,infact[n]

;ll ksm

(ll a,ll n)

return sum;

}void

init()

}ll c

(ll a,ll b)

intmain()

x=ksm(

2,n)

;y=c

(n,k)

;for

(i=0

;i)printf

("%lld\n"

,y*ksm

(x,mod-2)

%mod);}

return0;

}

扔硬幣 (逆元 組合數學)

有n枚硬幣,每枚硬幣扔出來是正面和反面的概率各佔50 小明同時扔下了n枚硬幣後,已知至少有m枚硬幣是反面。請問恰好有k枚硬幣是正面的概率是多少。輸入t,代表有t組資料。每組資料輸入乙個數n,m,k,代表有n枚硬幣,丟擲以後至少有m枚是反面的情況下,恰好有k個正面的概率。t 1000,n 1e5,m ...

牛客網 Chessboard 組合數

今天csl又來了tl。他看到tl有乙個非常大的棋盤和許多玻璃球。所以他有個主意。他對tl說 你有多大的棋盤.和我一起玩遊戲怎麼樣?我會給你,你可以在棋盤上選擇乙個任意大的方形區域 假設你選擇乙個方形區域 和在每個正方形上放置一些玻璃球 每個正方形應放置不小於玻璃球 您的位置需要滿足 如果我們選擇不同...

牛客多校第十場D(字首和與組合數)

題意 長度為n的序列,初始都是0,維護3個操作 there are three types of operations 1.1 l r w,for each index i l,r change ai to ai w.2.2,change a to its prefix sum array.i.e....