[CF306C]White, Black and White Again_排列组合
2024-09-05 04:59:10
White, Black and White Again
题目链接:https://www.luogu.org/problem/CF306C
数据范围:略。
题解:
记得不要看错题,容易看成来回交替下去,其实只有一次。
数据范围实在是特别小,我们就枚举一下中间的黑色是哪些天就好了,复杂度是$O(n^2)$的。
代码:
#include <bits/stdc++.h> #define setIO(s) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout) using namespace std; typedef long long ll; const int mod = 1000000009 ; int fac[4010], inv[4010]; int qpow(int x, int y) {
int ans = 1;
while (y) {
if (y & 1) {
ans = (ll)ans * x % mod;
}
y >>= 1;
x = (ll)x * x % mod;
}
return ans;
} inline int C(int x, int y) {
if (x < y) {
return 0;
}
return (ll)fac[x] * inv[x - y] % mod * inv[y] % mod;
} int main() {
// setIO("count");
int n, w, b;
cin >> n >> w >> b ;
fac[0] = 1, inv[0] = 1;
for (int i = 1; i <= 4000; i ++ ) {
fac[i] = (ll)fac[i - 1] * i % mod;
inv[i] = qpow(fac[i], mod - 2);
}
int ans = 0;
for (int i = 2; i <= n; i ++ ) {
for (int j = i; j < n; j ++ ) {
// i, j
ans = (ans + (ll)fac[w] * fac[b] % mod * C(w - 1, n - j + i - 2) % mod * C(b - 1, j - i) % mod) % mod;
}
}
cout << ans << endl ;
// fclose(stdin);
// fclose(stdout);
return 0;
}
小结:读题要仔细啊。
最新文章
- Excel公式 提取文件路径后缀
- 学习 ---- JavaScript 高级设计程序 第三章(数据类型)
- coalesce函数用法
- nginx 日志切割
- validation验证器指定action中某些方法不需要验证
- C#实现http协议下的多线程文件传输
- JMeter学习-019-JMeter 监听器之【聚合报告】界面字段解析及计算方法概要说明
- zookeeper适用场景:zookeeper解决了哪些问题
- CF 13E. Holes 分块数组
- Linux常用命令大全(2)
- JSP(二)
- [转]Traceroute网络排障实用指南(2)
- STM FLASH在线编程 升级
- [转]hive metadata 存mysql 注释中文乱码的有关
- tensorflow的升级与版本管理
- window2012如何查看进程中PID所对应的IIS应用程序池
- PKU OJ Exponentiation
- 区间DP的学习(持续更新)
- MongoDB学习笔记(二)
- scrum立会报告+燃尽图(第二周第六次)
热门文章
- MySQL GROUP BY 语句
- C# 使用多线程,在关闭窗体时 怎么关闭窗体的所有线程,使程序退出。
- vscode设置VUE eslint开发环境
- Maven项目转化出WebContent风格的目录
- tarjan求强连通分量(模板)
- Java中RuntimeException和Exception
- flask 自定义转换器
- Python全国二级等级考试(2019)
- JAVA-Thread 线程的几种状态
- spring项目启动错误——java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext