博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[luogu1373]小a和uim之大逃离【动态规划】
阅读量:5049 次
发布时间:2019-06-12

本文共 1716 字,大约阅读时间需要 5 分钟。

传送门:


定义状态是:\(f[i][j][h][0..1]\)表示在\([i,j]\)两个人相差为h,让某一个人走的方案数。(0表示小a,1表示uim)。

我们让小a走,那么状态转移方程就是\(f[i][j][h][0]=f[i][j][h][0]+f[i-1][j][(h-a[i][j]+k)mod \ k][1]+f[i][j-1][(h-a[i][j]+k)mod \ k][1]\)这里防止状态里面出现负数,就加模取模,这里的意思就是小a的状态必须是由先让uim走来的,那么这样原来的差距更小。
同理:\(f[i][j][h][1]=f[i][j][h][1]+f[i-1][j][(h+a[i][j])mod \ k][0]+f[i][j-1][(h+a[i][j]) mod \ k][0]\),也就是前一个人走。

#include 
#define ll long long#define ms(a, b) memset(a, b, sizeof(a))#define inf 0x3f3f3f3f#define mod 1000000007#define N 805using namespace std;template
inline void read(T &x) { x = 0; T fl = 1; char ch = 0; while (ch < '0' || ch > '9') { if (ch == '-') fl = -1; ch = getchar(); } while (ch >= '0' && ch <= '9') { x = (x << 1) + (x << 3) + (ch ^ 48); ch = getchar(); } x *= fl;}int n, m, k;int a[N][N];int f[N][N][20][2];int main() { read(n); read(m); read(k); ++ k; for (int i = 1; i <= n; i ++) { for (int j = 1; j <= m; j ++) { read(a[i][j]); f[i][j][a[i][j] % k][0] = 1; } } for (int i = 1; i <= n; i ++) { for (int j = 1; j <= m; j ++) { for (int h = 0; h <= k; h ++) { f[i][j][h][0] = (f[i][j][h][0] + f[i - 1][j][(h - a[i][j] + k) % k][1] + f[i][j - 1][(h - a[i][j] + k) % k][1]) % mod; f[i][j][h][1] = (f[i][j][h][1] + f[i - 1][j][(h + a[i][j]) % k][0] + f[i][j - 1][(h + a[i][j]) % k][0]) % mod; } } } int ans = 0; for (int i = 1; i <= n; i ++) { for (int j = 1; j <= m; j ++) { ans = (ans + f[i][j][0][1]) % mod; } } printf("%d\n", ans); return 0;}

转载于:https://www.cnblogs.com/chhokmah/p/10553928.html

你可能感兴趣的文章
机器学些技法(9)--Decision Tree
查看>>
drf权限组件
查看>>
输入月份和日期,得出是今年第几天
查看>>
Qt中子窗口全屏显示与退出全屏
查看>>
使用brew安装软件
查看>>
[BZOJ1083] [SCOI2005] 繁忙的都市 (kruskal)
查看>>
吴裕雄 python 机器学习——数据预处理嵌入式特征选择
查看>>
Centos6.4安装JDK
查看>>
201521123069 《Java程序设计》 第4周学习总结
查看>>
线性表的顺序存储——线性表的本质和操作
查看>>
【linux】重置fedora root密码
查看>>
pig自定义UDF
查看>>
输入名字显示其生日,没有则让输入生日,做记录
查看>>
Kubernetes 运维学习笔记
查看>>
并查集 经典 畅通工程
查看>>
Spark MLlib 之 Naive Bayes
查看>>
php修改SESSION的有效生存时间
查看>>
spring security 11种过滤器介绍
查看>>
Hibernate一对多、多对一关联
查看>>
一、记录Git使用中遇到的问题及解决方法
查看>>