题目链接:https://www.luogu.org/problemnew/show/P1373

想不出来状态

看了一眼题解状态明白了

dp[i][j][h][1/0] 表示在i,j点差值为h是小A还是uim移动的

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;
const int maxn = 801;
const int mod = 1e9+7;
ll dp[maxn][maxn][31][2], m, n, a[maxn][maxn], ans, k;
void init()
{
for(ll i = 1; i <= n; i++)
for(ll j = 1; j <= m; j++) dp[i][j][a[i][j]%k][0] = 1;//小A
}
int main()
{
cin>>n>>m>>k;
k++;
for(ll i = 1; i <= n; i++)
for(ll j = 1; j <= m; j++) cin>>a[i][j];
init();
for(ll i = 1; i <= n; i++)
for(ll j = 1; j <= m; j++)
for(ll o = 0; o < k; o++)
{
dp[i][j][o][0] = (dp[i-1][j][(o-a[i][j]+k)%k][1] + dp[i][j][o][0])%mod;
dp[i][j][o][1] = (dp[i-1][j][(o+a[i][j])%k][0] + dp[i][j][o][1])%mod;
dp[i][j][o][1] = (dp[i][j-1][(o+a[i][j])%k][0] + dp[i][j][o][1])%mod;
dp[i][j][o][0] = (dp[i][j-1][(o-a[i][j]+k)%k][1] + dp[i][j][o][0])%mod;
}
for(ll i = 1; i <= n; i++)
for(ll j = 1; j <= m; j++)
ans = (ans + dp[i][j][0][1])%mod;
cout<<ans;
return 0;
}

【luogu P1373 小a和uim之大逃离】 题解的更多相关文章

  1. luogu P1373 小a和uim之大逃离

    题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...

  2. Luogu P1373 小a和uim之大逃离【dp】By cellur925

    题目传送门 $50pts$:容易设计出状态$f[i][j][l][r][st]$表示当前的这个人在($i$,$j$),小a和uim魔瓶中的含量分别为$l$,$r$,当$st=0$表明现在是小a在吃,当 ...

  3. 洛谷 P1373 小a和uim之大逃离 题解

    每日一题 day30 打卡 Analysis f[i][j][p][q]表示他们走到(i,j),且两人魔瓶内魔液量的差为p时的方法数.q=0表示最后一步是小a走的,q=1表示最后一步是uim走的.题目 ...

  4. 洛古 P1373 小a和uim之大逃离

    P1373 小a和uim之大逃离 题目提供者lzn 标签 动态规划 洛谷原创 难度 提高+/省选- 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电 ...

  5. 洛谷 P1373 小a和uim之大逃离

    2016-05-30 12:31:59 题目链接: P1373 小a和uim之大逃离 题目大意: 一个N*M的带权矩阵,以任意起点开始向右或者向下走,使得奇数步所得权值和与偶数步所得权值和关于K的余数 ...

  6. 洛谷P1373 小a和uim之大逃离

    P1373 小a和uim之大逃离 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从 ...

  7. 【题解】 P1373 小a和uim之大逃离

    题解 P1373 小a和uim之大逃离 传送门 一道dp好题 乍看此题,感觉要这样设计: \(dp(x)(y)(mod_{a})(mod_{uim})(0/1)\) , 但是我上午考试就MLE了,赶紧 ...

  8. 【题解】P1373 小a和uim之大逃离

    [题解]P1373 小a和uim之大逃离 考虑到可能会MLE,考虑状态压缩一下 由于只要得到他们的差就行了,所以直接少记录一维就好了 \(dp(i,j,r,1/0)\)表示在\(i,j\)点,当前ui ...

  9. luogu P3818 小A和uim之大逃离 II

    题目背景 话说上回……还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然一阵南风吹来,一片乌云从南部天边急涌过来 ...

随机推荐

  1. python学习之老男孩python全栈第九期_day027知识点总结——反射、类的内置方法

    一. 反射 ''' # isinstance class A:pass class B(A):pass a = A() print(isinstance(a,A)) # 判断对象和类的关系 print ...

  2. grunt-contrib-watch 监控 JS 文件改变来运行预定义的Tasks

    依赖于 GruntJs ~0.4.0 监控 JS 文件改变来运行预定义的Tasks Demo: watch: { scripts: { files: ['src/**/*.js'], tasks: [ ...

  3. javascript变量的引用类型值

    JavaScript变量可以用来保存俩种类型的值:基本类型和引用类型值 前言 JS变量可以用来保存两种类型的值:基本类型值和引用类型值.基本类型的值源自一下5种基本数据类型:Underfined.Nu ...

  4. js笔记 -- toString() 和String()

    将一个值转换成一个字符串有两种方法,一是使用toString()方法,二是使用转型函数String().下面是一些需要注意的问题: 1,大多值都有toString()方法,因为toString是Obj ...

  5. 阿里,百度,腾讯招聘 Java 程序员的技术标准

    阿里巴巴篇 扎实的计算机专业基础,包括算法和数据结构,操作系统,计算机网络,计算机体系结构,数据库等 具有扎实的Java编程基础,理解IO.多线程等基础框架 熟练使用Linux系统的常用命令及shel ...

  6. 第8课 网络数据读取测试-TinyWebDB

    TinyWebDB是在线小型数据库,通过它的使用,可以将数据保存在网络,实现排行榜等功能.   实现功能:读入数据并保存,读出数据并显示.   1.组件设计   TinyWebDB1:非可视化,借用网 ...

  7. Python startswith()函数 与 endswith函数

    函数:startswith() 作用:判断字符串是否以指定字符或子字符串开头一.函数说明语法:string.startswith(str, beg=0,end=len(string))       或 ...

  8. 从golang-gin-realworld-example-app项目学写httpapi (七)

    https://github.com/gothinkster/golang-gin-realworld-example-app/blob/master/hello.go main调用 package ...

  9. 将csv导出json格式

    将csv导出json格式 import os,csv,json cf = open('D:\OneDrive\\Tech\\Script\\Powershell_Script\\Uxin_work\\ ...

  10. Andriod(3)——Understanding Android Resources

    Now, we will follow that introduction with an in-depth look at Android SDK fundamentals and cover re ...