扔硬幣 (逆元 組合數學)

2022-06-09 06:03:10 字數 1181 閱讀 1944

有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複製

1

10 3 5

複製

797520667

#includeusing

namespace

std;

typedef

long

long

ll;

inline

intread()

while(ch>='

0'&&ch<='9')

return x*f;

}#define pi 3.14159265358979323846

const

int inf=0x3f3f3f3f

;const

int mod=1e9+7

;const

int maxn=1e6+100

;const

int maxa=1e9+10

;

ll n,m,p,t;

ll f[maxn];

ll qpow(ll a,ll b)

b>>=1

; a=(a*a)%mod;

}return

ans;

}ll cal(

int m,int

n)

return f[m]*qpow(f[m-n],mod-2)%mod*qpow(f[n],mod-2)%mod;

}int

main()

while(t--)

else

ans=(qpow(2,n)-ans+mod)%mod;

ans=qpow(ans,mod-2

); printf(

"%lld\n

",(ans*cal(n,p))%mod);}}

return0;

}

乘法逆元 組合數

要求 a b mod p的值,但 a 很大,無法直接求得a b的值時,就要用到乘法逆元。b x 1 mod p x的最小正整數解k叫做b關於模p的乘法逆元。a b mod p a k mod p 證明 k n p 1 b a k mod p a n p 1 b mod p a b n p 1 mod...

牛客 D 扔硬幣(組合數)

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

計數 (快速冪 逆元 組合數學隔板法)

計數時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 小sun最近對計數問題來了興趣,現在他有乙個問題想問問你 有乙個含有n個數字的序列,每個數的大小是不超過1000的正整數,同時這個序列是個單調不增序列。但是很不幸的...