CF306C:White, Black and White Again(组合数)
来源:互联网 发布:js设置select不可用 编辑:程序博客网 时间:2024/06/10 18:19
题意:给出N,W,B,要求用W夹住B,然后将他们分成连续N份,每份里面不能同时出现W和B,且每个W和每个B都不一样,问方案数。
思路:组合数+隔板法,除了分割W和B的那两块板,还有N-3块板插进去。
# include <bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 8e3;const LL mod = 1e9+9;LL inv[maxn+3] = {1,1}, fac[maxn+3] = {1,1}, fi[maxn+3] = {1,1};void init(){ for(int i=2; i<=maxn; ++i) { fac[i] = fac[i-1]*i%mod; inv[i] = (mod-mod/i)*inv[mod%i]%mod; fi[i] = fi[i-1]*inv[i]%mod; }}LL c(LL n, LL m){ return fac[n]*fi[n-m]%mod*fi[m]%mod;}int main(){ init(); LL n, w, b, ans = 0; scanf("%I64d%I64d%I64d",&n,&w,&b); for(LL i=1; i<w; ++i) { ans += c(w,i)*fac[i]%mod*fac[b]%mod*fac[w-i]%mod*c(w+b-3,n-3)%mod; ans %= mod; } printf("%I64d\n",ans); return 0;}
阅读全文
0 0
- CF306C:White, Black and White Again(组合数)
- White, Black and White Again )(CodeForces
- Codeforces 306C White, Black and White Again (简单计数)
- codeforces 306C White, Black and White Again
- Codeforces 306C White, Black and White Again
- POJ-3364(简单组合)(Black and white painting )
- Black And White
- Black And White
- Black and white hdu3633
- hdu3911 Black And White
- hdu3911---Black And White
- HDU5113 Black And White
- Black And White HDU
- Black And White
- HDU 5113 Black and White(搜索)
- HDU 5113 Black And White (dfs)
- HDU3911 Black And White(黑白子)
- HDU 5113 Black And White(dfs)
- tornado----编写简易的服务器
- Supervisor-进程管理
- node
- 大话 AliPay踩的坑
- 音频播放问题
- CF306C:White, Black and White Again(组合数)
- hdu
- Androidpn项目搭建
- INSTALL_FAILED_INVALID_APK: Split lib_slice_5_apk was defined multiple times异常
- MyBatis的动态sql的like拼接
- 二分查找之Java实现
- 彻底搞懂HTTP协议
- nvm 安装 node
- python - 实现带下标索引的遍历