解析

棋盘上黑白格染色。曼哈顿距离偶数:奇偶性相同。

枚举有几种颜色分到白格,组合数计算即可。

注意预处理,时间还是比较宽裕的。

为了不重复计数,考虑枚举严格用了i种颜色,我们再枚举分配j种给白集合。设白集合、黑集合大小分别为s1,s2,那么这种分配方案对答案的贡献为 \(C^k_i\) \(C^k_i\) \(f_{s1,j}\) \(f_{s2,i-j}\) \(j!\) \((i-j)!\)

\(f_{i,j}\) 表示第二类斯特林数,表示将i个数分配到j个集合的方案数。

\(f_{i,j}\) = \(f_{i-1,j-1}\) + \(f_{i-1,j}\) \(\times j\)

\(f_{0,i}\) = \(0^i\)

这些东西都可以预处理。

注意边界要开好,不然n=1,m=1情况会错。

时间复杂度$ O(n^2 m2+qK2) $。

代码

#include<bits/stdc++.h>
using namespace std;
const long long p=1000000007;
int T,n,m,k,s1,s2;
long long c[410][410],f[410][60],fact[410],ans;
bool mape[25][25];
int main(){
scanf("%d",&T);
c[0][0]=1;c[1][0]=c[1][1]=1;
for(int i=2;i<=405;++i){
for(int j=0;j<=i;++j){
c[i][j]=(c[i-1][j]+c[i-1][j-1])%p;
}
}
f[0][0]=1;
for(int i=1;i<=405;++i){
for(int j=1;j<=50&&j<=i;++j){
f[i][j]=(f[i-1][j]*j+f[i-1][j-1])%p;
}
}
fact[0]=1;
for(int i=1;i<=405;++i){
fact[i]=(long long)i*fact[i-1]%p;
}
while(T--){
scanf("%d %d %d",&n,&m,&k);
s1=0,s2=0;
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
mape[i][j]=(i&1)^(j&1);
s1+=mape[i][j];
s2+=1^mape[i][j];
}
}
ans=0;
for(int i=1;i<=k;++i){
for(int j=0;j<=i;++j){
(ans+=(((((c[k][i]%p*c[i][j])%p*f[s1][j])%p*f[s2][i-j])%p*fact[j])%p*fact[i-j])%p)%=p;
}
}
printf("%lld\n",ans%p);
} return 0;
}

最新文章

  1. ABP教程-对Person信息进行操作
  2. ArcGIS10.2.1精简版、ArcGIS_Desktop10_Tutorial、破解文件等下载地址
  3. Backbone的一点使用心得
  4. ArcGis 字段计算表达式写法注意事项
  5. Booth Multiplication Algorithm [ASM-MIPS]
  6. #316 div.2
  7. NODE编程(二)--异步编程技术
  8. fedroa 更换字体
  9. How to download apk for google play online?
  10. vmware 虚拟机 mount :no medium found解决方法
  11. HDOJ 1422 重温世界杯 -- 动态规划
  12. 文件同步工具BT Sync介绍和使用说明
  13. C# Web版报表
  14. CSU 1505 酷酷的单词 湖南省赛第十届题目
  15. Day01 Java环境变量配置
  16. Linux运维正则表达式之grep
  17. C++对象模型的那些事儿之一:对象模型(上)
  18. mysql配置外部允许外部连接
  19. Effective Java 第三版—— 86. 非常谨慎地实现SERIALIZABLE接口
  20. stm32型号解读

热门文章

  1. StarUML 3.0 破解方法
  2. IT技术管理者的自我修养
  3. 使用Junit测试一个 spring静态工厂实例化bean 的例子,所有代码都没有问题,但是出现java.lang.IllegalArgumentException异常
  4. Scala类和对象(二)
  5. Tomcat源码分析 (五)----- Tomcat 类加载器
  6. VMware安装Centos7虚拟机
  7. Yii的srbac拓展中“用户已经获授权项”无法查看
  8. Flask框架(二)—— 反向解析、配置信息、路由系统、模板、请求响应、闪现、session
  9. vue路由传参的三种方式以及解决vue路由传参页面刷新参数丢失问题
  10. tab栏切换制作