组合数学八题

组合数学八题


约定:

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 个不同的球,放进 M 个不同的盒子,盒子允许为空,有多少种方案?

样例输入:

1
3 2

样例输出:

8

Solution

很显然, ans=mn


B

给定 N 个不同的球,放进 M 个不同的盒子,盒子不允许为空,有多少种方案?

样例输入:

1
3 2

样例输出:

6

Solution

S(m)=mni=1m1S(mi)Cim , S(1)=1

用孙子定理和 Lucas 定理就可以做了。


C

给定 N 个不同的球,放进 M 个相同的盒子,盒子允许为空,有多少种方案?

样例输入:

1
3 2

样例输出:

4

Solution

首先,考虑不允许为空的情况。

fn,m=fn1,m1+fn1,mm

因为可以有空盒,所以枚举有多少个空盒,
ans=i=1mfn,i


D

给定 N 个不同的球,放进 M 个相同的盒子,盒子不允许为空,有多少种方案?

样例输入:

1
3 2

样例输出:

3

Solution

C

fn,m=fn1,m1+fn1,mm

ans=fn,m


E

给定 N 个相同的球,放进 M 个不同的盒子,盒子允许为空,有多少种方案?

样例输入:

1
3 2

样例输出:

4

Solution

插板法, ans=Cm1n1


F

给定 N 个相同的球,放进 M 个不同的盒子,盒子不允许为空,有多少种方案?

样例输入:

1
3 2

样例输出:

2

Solution

插板法, ans=Cm1n+m1


G

给定 N 个相同的球,放进 M 个相同的盒子,盒子允许为空,有多少种方案?

样例输入:

1
3 2

样例输出:

2

Solution

设一个方案为 a1,a2,ak ki=1ak=n ajaj1(1<jk)

aj<aj1 ,则可以调换 aj aj1 ,方案数不变(因为盒子相同)。

考虑第 i 个盒子,可以不放球,也可以放球。根据方案的递减性,若在当前盒子中放球,那么所有盒子都要放球。
fj,i=fj,i1+fji,i


H

给定 N 个相同的球,放进 M 个相同的盒子,盒子不允许为空,有多少种方案?

样例输入:

1
3 2

样例输出:

1

Solution

G 一样。因为不允许为空,所以我们先把 m 个球放到盒子里面去,所以只剩下 nm 个球,就跟 G 一模一样了。

你可能感兴趣的:(题解,BZOJ,考试,数学)