BZOJ1801 [Ahoi2009]chess 中国象棋(DP, 计数)
2024-08-31 22:30:27
题目链接 [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 ;
}
最新文章
- QT编写上位机程序一定要初始化变量以及谨慎操作指针
- Jsp c标签数值格式化
- [转]把动态页面.aspx 生成静态页面.html
- node.js创建服务器报错
- ArrayList、LinkedList、Vector的区别
- C. Tavas and Karafs 二分查找+贪心
- gradle command not found
- JAVA js的escape函数、解析用js encodeURI编码的字符串、utf8转gb2312的函数
- sublime text 2代码片段(Snippet)功能的使用
- hdu 4507 数位dp(求和,求平方和)
- Zoj 3545 Rescue the Rabbit(ac自己主动机+dp)
- Angular开发实践(四):组件之间的交互
- SQLServer之创建DML AFTER UPDATE触发器
- Windows 2008 r2上安装MySQL
- git教程:工作区和暂存区
- MySQL5.7.20报错Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO)
- [CocoaPods]使用CocoaPods
- 阿里云ECS安装flannel启动问题
- hive执行报错:Both left and right aliases encountered in JOIN &#39;s1&#39;
- NETIF_F_LLTX 的属性
热门文章
- MySQL和PostgreSQL比较
- CSS需要注意的问题1(转生活因拼搏而精彩的网易博客)
- [原]sencha touch之表单(login demo)
- navicat常用快捷键及注意事项
- Python中@property和@classmethod和@staticmethod
- MFC之HTTP文件上传
- 【bzoj4199】[Noi2015]品酒大会 后缀自动机求后缀树+树形dp
- The following signatures couldn&#39;t be verified because the public key is not available 解决方法
- Linux PC开发环境搭建建议
- 百度地图API 根据地址查询经纬度