题目链接 [Ahoi2009]chess 中国象棋

设$f[i][j][k]$为前i行,$j$列放了1个棋子,$k$列放了2个棋子的方案数

分6种情况讨论,依次状态转移。

 #include <bits/stdc++.h>

 using namespace std;

 #define rep(i, a, b) for (int i(a); i <= (b); ++i)

 typedef long long LL;
const LL mod = ;
int n, m;
LL f[][][], ans = ; inline LL calc(LL x){ return x * (x - ) / ;} int main(){ scanf("%d%d", &n, &m);
f[][][] = ;
rep(i, , n){ rep(j, , m){ rep(k, , m - j){
f[i][j][k] = f[i - ][j][k];
if (j) f[i][j][k] += f[i - ][j - ][k] * (m - k - j + );
if (j < m && k) f[i][j][k] += f[i - ][j + ][k - ] * (j + );
if (j && k) f[i][j][k] += f[i - ][j][k -] * j * (m - j - k + );
if (j > ) f[i][j][k] += f[i - ][j - ][k] * calc(m - k - j + );
if (j <= m - && k > ) f[i][j][k] += f[i - ][j + ][k - ] * calc(j + );
f[i][j][k] %= mod;
} }
} rep(i, , m) rep(j, , m - i) (ans += f[n][i][j]) %= mod;
printf("%lld\n", ans);
return ;
}

最新文章

  1. QT编写上位机程序一定要初始化变量以及谨慎操作指针
  2. Jsp c标签数值格式化
  3. [转]把动态页面.aspx 生成静态页面.html
  4. node.js创建服务器报错
  5. ArrayList、LinkedList、Vector的区别
  6. C. Tavas and Karafs 二分查找+贪心
  7. gradle command not found
  8. JAVA js的escape函数、解析用js encodeURI编码的字符串、utf8转gb2312的函数
  9. sublime text 2代码片段(Snippet)功能的使用
  10. hdu 4507 数位dp(求和,求平方和)
  11. Zoj 3545 Rescue the Rabbit(ac自己主动机+dp)
  12. Angular开发实践(四):组件之间的交互
  13. SQLServer之创建DML AFTER UPDATE触发器
  14. Windows 2008 r2上安装MySQL
  15. git教程:工作区和暂存区
  16. MySQL5.7.20报错Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO)
  17. [CocoaPods]使用CocoaPods
  18. 阿里云ECS安装flannel启动问题
  19. hive执行报错:Both left and right aliases encountered in JOIN &#39;s1&#39;
  20. NETIF_F_LLTX 的属性

热门文章

  1. MySQL和PostgreSQL比较
  2. CSS需要注意的问题1(转生活因拼搏而精彩的网易博客)
  3. [原]sencha touch之表单(login demo)
  4. navicat常用快捷键及注意事项
  5. Python中@property和@classmethod和@staticmethod
  6. MFC之HTTP文件上传
  7. 【bzoj4199】[Noi2015]品酒大会 后缀自动机求后缀树+树形dp
  8. The following signatures couldn&#39;t be verified because the public key is not available 解决方法
  9. Linux PC开发环境搭建建议
  10. 百度地图API 根据地址查询经纬度