题目链接

也是简单的组合数学问题,每个位置可以移动走,也可以移动来,那么我们就需要找最终的状态,也就是最终的0的个数

假设有m个0,就有n-m个非0空位,选择0的组合数为\(\textrm{C}_{n}^{m}\),这m个位置转移到n-m个位置的组合数为\(\textrm{D}_{n-m}^{m}\),意思是从n-m个非0的部分选m个来接受这些转移来的,转换成组合数公式有:\(\textrm{D}_{n-m}^{m}\) = \(\textrm{C}_{n-1}^{n-m-1}\),也就是说,x个中选y个,可以重复的组合数为\(\textrm{C}_{x+y-1}^{x-1}\)

#include<bits/stdc++.h>
using namespace std;
#define lowbit(x) ((x)&(-x))
typedef long long LL; const int maxn = 2e5+5;
const LL MOD = 1e9+7;
LL F[maxn], Finv[maxn], inv[maxn]; void prework() {
inv[1] = 1;
for(int i = 2; i < maxn; ++i) {
inv[i] = (MOD - MOD / i) * 1LL * inv[MOD % i] % MOD;
}
F[0] = Finv[0] = 1;
for(int i = 1; i < maxn; ++i) {
F[i] = F[i-1] * 1LL * i % MOD;
Finv[i] = Finv[i-1] * 1LL * inv[i] % MOD;
}
} LL comb(int n, int m) { //C(n, m)
if(n < m || m < 0) return 0;
return F[n] * 1LL * Finv[n-m] % MOD * Finv[m] % MOD;
} void run_case() {
prework();
LL n, k, ans = 0;
cin >> n >> k;
for(int i = 0; i < n; ++i) {
if(i > k) break;
ans = (ans + comb(n, i) * comb(n-1, n-i-1)%MOD + MOD) % MOD;
}
cout << ans;
} int main() {
ios::sync_with_stdio(false), cin.tie(0);
cout.flags(ios::fixed);cout.precision(10);
run_case();
cout.flush();
return 0;
}

ABC156E的更多相关文章

随机推荐

  1. SuperSocket与SuperSocket.ClientEngine实现Protobuf协议

    参考资料说明 SuperSocket文档 http://docs.supersocket.net/ Protobuf语言参考 https://developers.google.com/protoco ...

  2. 跨表更新,Mysql Update Join

    背景 项目新导入了一批人员数据,这些人的有的部门名称发生了变化,有的联系方式发生了变化,暂且称该表为t_dept_members, 系统中有另外一张表 t_user_info 记录了人员信息. 要求将 ...

  3. tianmao项目的学习笔记

    1.后台-分类管理/查询 实体相关的知识: 1.1@Entity和@Table的区别:https://www.cnblogs.com/softidea/p/6216722.html 1.2@JsonI ...

  4. 第三十四篇 玩转数据结构——哈希表(HashTable)

    1.. 整型哈希函数的设计 小范围正整数直接使用 小范围负整数整体进行偏移 大整数,通常做法是"模一个素数"   2.. 浮点型哈希函数的设计 转成整型进行处理   3.. 字符串 ...

  5. javaFx中Image的路径问题

    网络图像文件前面加“http://”,而本地文件则要加“file:”.将源代码改为: Image image = new Image("file:image/qq.jpg"); I ...

  6. 【游戏体验】I Paid For It!(火柴人破坏狂)

    >>>点此处可试玩无敌版<<< 注意,本游戏含有少量暴力元素,13岁以下的儿童切勿尝试本款游戏 这款游戏打击感非常高,动画也比较绚丽,可玩性很高 个人测评 游戏性 ...

  7. centos7 源码编译安装nginx教程 nginx安装脚本 lua-nginx-module

    安装nginx需要pcre zlib openssl的库,下文都是在官网直接下载用作编译安装 该nginx安装教程,有安装maxmind IP 库 该nginx安装教程有安装lua-nginx-mod ...

  8. (c#)拼写单词

    题目 解

  9. HTML5学习(6)a元素

    a元素代表超链接 href属性 hyper reference:通常代表跳转地址 target属性:_self在本窗口中打开(默认),_blank在新窗口中打开. id属性:全局属性,表示元素在文档中 ...

  10. python夜记

    关于多行字符串(multi-line strings)的表现: Python列表是基于0索引的.(zero-indexed). 晌午起床来嘞,再来些笔记: Treasures 1: 列表方法rever ...