(别点我我不是题目)

这道题可以很容易看出是一道dp(因为是在dp关卡里找的)

稍微想一下就可以yy出一个不错的状态:

f[i][j][k][0/1]代表走到了点(i,j)、膜液量相差k(小a-uim=k)、小a/uim最后取的情况数

坑一:

f[][][][]:Accepted  .00s .31MB
f[][][][]:Unaccepted .11s .00MB//MLE三个点

转移也很好办:一个点只可能从左边或者上边走来

int tmp=(c-mp[i][j]+k)%k;
f[i][j][c][]+=(f[i-][j][tmp][]%mod+f[i][j-][tmp][]%mod)%mod;
f[i][j][c][]%=mod;
tmp=(c+mp[i][j])%k;
f[i][j][c][]+=(f[i-][j][tmp][]%mod+f[i][j-][tmp][]%mod)%mod;
f[i][j][c][]%=mod;

其中tmp代表上一个点的膜液差

坑二:输入时的膜液量可能大于k

坑三:可以从任一点出发,应将每个f[i][j][mp[i][j]][0]赋值为1

坑四:c-mp[i][j]可能是负的,如果不写成tmp=(c-mp[i][j]+k)%k而是tmp=(c-mp[i][j])%k的话,

Unaccepted  .01s .01MB

不多说了,看代码

 #include<bits/stdc++.h>
using namespace std;
int n,m,k,mp[][];
//坑一:炸空间
int f[][][][],sum;
#define mod 1000000007
int main(){
ios::sync_with_stdio();
cin>>n>>m>>k;
k++;
//读入
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
cin>>mp[i][j];
//坑二:膜液量
mp[i][j]%=k;
//坑三:出发点
f[i][j][mp[i][j]][]=;
}
}
//DP
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
for(int c=;c<k;c++){
//坑四:取膜
int tmp=(c-mp[i][j]+k)%k;
f[i][j][c][]+=(f[i-][j][tmp][]%mod+f[i][j-][tmp][]%mod)%mod;
f[i][j][c][]%=mod; tmp=(c+mp[i][j])%k;
f[i][j][c][]+=(f[i-][j][tmp][]%mod+f[i][j-][tmp][]%mod)%mod;
f[i][j][c][]%=mod;
}
sum=(sum+f[i][j][][])%mod;
}
}
cout<<sum<<endl;
return ;
}

完结撒花

[洛谷P1373][题解]小a和uim之大逃离的更多相关文章

  1. 【洛谷P1373】小a和uim之大逃离

    小a和uim之大逃离 题目链接 因为每次只能向下或向右走,我们可以递推 dp[i][j][d][0/1]表示走到(i,j),mod k 意义下差值为d,轮到小a/小uim操作时的方案数 dp[i][j ...

  2. 【洛谷P3818】小A和uim之大逃离 II

    小A和uim之大逃离 II 题目链接 比较裸的搜索,vis[i][j]再加一层[0/1]表示是否使用过魔液 转移时也将是否使用过魔液记录下来,广搜即可 #include<iostream> ...

  3. 洛谷 1373 dp 小a和uim之大逃离 良心题解

    洛谷 1373 dp 这题还不算太难,,当初看的时候不是很理解题意,以为他们会选择两条不同的路径,导致整体思路混乱 传送门 其实理解题意和思路之后还是敲了不短的时间,一部分身体原因再加上中午休息不太好 ...

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

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

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

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

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

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

  7. 洛谷1373 小a和uim之大逃离

    洛谷1373 小a和uim之大逃离 本题地址:http://www.luogu.org/problem/show?pid=1373 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北 ...

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

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

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

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

随机推荐

  1. unity3d 动态添加地面贴图 草地

    TerrainData.splatPrototypes = ]{ new SplatPrototype() { texture=Caodi, //Texture2D的贴图 normalMap=null ...

  2. 常见的RuntimeException报错原因

    对于RuntimeException 做java开发的朋友想必不会陌生,可以用于事物的回滚操作.异常类型也有很多种,写这篇文章主要是为了总结自己开发中遇到的一些异常类型 以便帮助大家遇到相应的报错找不 ...

  3. Jenkins编译过程中出现ERROR_ Failed to parse POMs错误

    一.在使用jenkins编写过程中突然出现以下问题 Parsing POMs Established TCP socket on 59407 [java] $ java -cp /var/lib/je ...

  4. centos7 7.3php编译安装

    1.首先更新依赖包. yum -y update 2.安装依赖包 yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bz ...

  5. CCF-CSP题解 201803-3 URL映射

    题目要求写一个简易的URL规则和URL地址匹配的程序. 说说我的思路. 将URL规则和地址都截成片段用结构体\(<type, str[]>\)存储.对于URL规则,\(type\)为0代表 ...

  6. python 多线程编程之进程和线程基础概念

    多线程编程 在多线程(multithreaded,MT)出现之前,计算机程序的执行都是由单个步骤序列组成的,该序列组合在主机的CPU中按照同步顺序执行.无论是任务本身需要按照步骤顺序执行,还是整个过程 ...

  7. XAF Architecture XAF架构

    Applications built with the eXpressApp Framework are comprised of several functional blocks. The dia ...

  8. Hack the Zico2 VM (CTF Challenge)

    下载链接: Download this VM here: https://download.vulnhub.com/zico/zico2.ova 端口扫描: ╰─ nmap -p1-65535 -sV ...

  9. Android高斯模糊实现方案

    1.使用Glide Glide.with(this) .load(service.getImageUri()) .dontAnimate() .error(R.drawable.error_img) ...

  10. DiskCatalogMaker for Mac常见问题解答

    DiskCatalogMaker for Mac是Mac上简单实用的磁盘管理工具,可以帮助您对多张光盘使用批量扫描模式, 生成缩略图图像选项,更加清晰,并请将其快速编目引擎与其他编目人员比较,在本篇文 ...