组合数学八题
约定:
1.1<=N,M<=1000
2.所有答案对1000007(10^6+7)取模
3.每道题只有一个点,一个点有多组数据
4.输入格式:第一行整数T(T<=10),表示数据组数;接下来T行每行两个数表示N,M
5.时间限制为1s,空间限制为256Mb
6.文件名为X.pas/c/cpp,输入为X.in,输出为X.out{大写字母}
A
给定
N
个不同的球,放进
样例输入:
1
3 2
样例输出:
8
Solution
很显然, ans=mn
B
给定
N
个不同的球,放进
样例输入:
1
3 2
样例输出:
6
Solution
用孙子定理和 Lucas 定理就可以做了。
C
给定
N
个不同的球,放进
样例输入:
1
3 2
样例输出:
4
Solution
首先,考虑不允许为空的情况。
因为可以有空盒,所以枚举有多少个空盒,
D
给定
N
个不同的球,放进
样例输入:
1
3 2
样例输出:
3
Solution
由
C
,
ans=fn,m
。
E
给定
N
个相同的球,放进
样例输入:
1
3 2
样例输出:
4
Solution
插板法, ans=Cm−1n−1
F
给定
N
个相同的球,放进
样例输入:
1
3 2
样例输出:
2
Solution
插板法, ans=Cm−1n+m−1
G
给定
N
个相同的球,放进
样例输入:
1
3 2
样例输出:
2
Solution
设一个方案为 a1,a2,……ak , ∑ki=1ak=n , aj≥aj−1(1<j≤k)
若 aj<aj−1 ,则可以调换 aj 、 aj−1 ,方案数不变(因为盒子相同)。
考虑第
i
个盒子,可以不放球,也可以放球。根据方案的递减性,若在当前盒子中放球,那么所有盒子都要放球。
H
给定
N
个相同的球,放进
样例输入:
1
3 2
样例输出:
1
Solution
跟
G
一样。因为不允许为空,所以我们先把