最大组合数和问题
题目描述
众所周知,小葱同学擅长计算,尤其擅长计算组合数。现在小葱给了你两个数 n 和 k,希望你找到 k 个不同的组合数,使得这 k 个组合数的和最大。
不同组合数的定义
对于组合数 Ca1b1 和 Ca2b2,若 a1=a2 或者 b1=b2,则认为这两个组合数是不同的。
约束条件
所选的每个组合数 Cab 必须满足 0≤b≤a≤n。
请你找出满足条件的 k 个不同组合数,计算它们的最大可能和。
输入格式
从标准输入读入数据:
- 第一行包含两个整数 n 和 k,分别表示组合数的上界和需要选择的组合数个数。
输出格式
输出到标准输出:
- 一行一个整数,代表 k 个组合数的和对 109+7 取模后的结果。
- 数据保证存在至少 k 个符合条件的组合数可供选择。
样例
样例输入
2 3
样例输出
4
样例解释
当 n=2 时,所有符合条件的组合数为:
- C00=1
- C10=1、C11=1
- C20=1、C21=2、C22=1
选择最大的 3 个不同组合数(C21=2、C00=1、C10=1,或其他任意 3 个和为 4 的组合),其和为 4。
数据范围与提示
| 数据比例 |
附加限制 |
| 20% |
n≤10 |
| 40% |
n≤500 |
| 另外 20% |
k=1 |
| 100% |
1≤n≤106,1≤k≤105 |