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;
}

小结:读题要仔细啊。

最新文章

  1. Excel公式 提取文件路径后缀
  2. 学习 ---- JavaScript 高级设计程序 第三章(数据类型)
  3. coalesce函数用法
  4. nginx 日志切割
  5. validation验证器指定action中某些方法不需要验证
  6. C#实现http协议下的多线程文件传输
  7. JMeter学习-019-JMeter 监听器之【聚合报告】界面字段解析及计算方法概要说明
  8. zookeeper适用场景:zookeeper解决了哪些问题
  9. CF 13E. Holes 分块数组
  10. Linux常用命令大全(2)
  11. JSP(二)
  12. [转]Traceroute网络排障实用指南(2)
  13. STM FLASH在线编程 升级
  14. [转]hive metadata 存mysql 注释中文乱码的有关
  15. tensorflow的升级与版本管理
  16. window2012如何查看进程中PID所对应的IIS应用程序池
  17. PKU OJ Exponentiation
  18. 区间DP的学习(持续更新)
  19. MongoDB学习笔记(二)
  20. scrum立会报告+燃尽图(第二周第六次)

热门文章

  1. MySQL GROUP BY 语句
  2. C# 使用多线程,在关闭窗体时 怎么关闭窗体的所有线程,使程序退出。
  3. vscode设置VUE eslint开发环境
  4. Maven项目转化出WebContent风格的目录
  5. tarjan求强连通分量(模板)
  6. Java中RuntimeException和Exception
  7. flask 自定义转换器
  8. Python全国二级等级考试(2019)
  9. JAVA-Thread 线程的几种状态
  10. spring项目启动错误——java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext