ssoj4010: 秀秀的照片(photo)

时间限制: 1 Sec 内存限制: 512 MB
提交: 41 解决: 17
[提交][状态][博客][加入收藏]
题目描述
华华在和秀秀视频时有截很多图。华华发现秀秀的每一张照片都很萌很可爱。为什么会这样呢?华华在仔细看过秀秀的所有照片后,发现秀秀的照片都具有一个相同的性质。

设秀秀的分辨率为
m
×
n
m×n,即在水平方向上每一行有
m
m个像素,垂直方向上每一列有
n
n个像素,照片共有
m
×
n
m×n个像素。每一个像素都有一个颜色,共有
k
k种颜色。华华宝宝发现无论是沿着哪两列像素的分界线将秀秀的照片分成左右两半(共有
m

1
m−1种分法),左右两半不同颜色的种数都是相同的。

华华宝宝把自己的发现告诉了秀秀宝宝。现在秀秀想知道当照片分辨率为
m
×
n
m×n,像素颜色种数为
k
k(不一定
k
k种颜色都出现)的时候,共有多少张不同的照片满足上面的性质。

由于答案可能很大,你只需输出答案对
10
9
+
7
109+7取模的结果即可。

输入
输入共一行,包含三个正整数
n
,
m
,
k
n,m,k。

输出
输出共一行,输出答案对
10
9
+
7
109+7取模的结果。

样例输入
2 2 2
样例输出
8
提示
数据范围 n,m<=2e3,k<=1e6.

题解:
发现第一列与最后一列的颜色种类数应该相等,且其它列的颜色应该属于这两列颜色的交集,故我们关心的只是第一行(最后一行)的颜色种类数与它们交集的大小,故枚举第一行(最后一行)的颜色种类数i,与它们交集的大小j,然后计算这样的种类数。首先从k中颜色中选出j种作为交集,再从剩下的n-j种中选出(i-j)*2种作为交集的补集,再从这(i-
j)*2种中选i-j种放到第一列,那么问题转化为将n个格子染成i种颜色的方案数,即为将n个有序的物品放入n个有序的篮子,用第二类斯特林数×排列数即可。

猜你喜欢

转载自blog.csdn.net/sz_165394732/article/details/83549324