[洛谷P1373][题解]小a和uim之大逃离
这道题可以很容易看出是一道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之大逃离的更多相关文章
- 【洛谷P1373】小a和uim之大逃离
小a和uim之大逃离 题目链接 因为每次只能向下或向右走,我们可以递推 dp[i][j][d][0/1]表示走到(i,j),mod k 意义下差值为d,轮到小a/小uim操作时的方案数 dp[i][j ...
- 【洛谷P3818】小A和uim之大逃离 II
小A和uim之大逃离 II 题目链接 比较裸的搜索,vis[i][j]再加一层[0/1]表示是否使用过魔液 转移时也将是否使用过魔液记录下来,广搜即可 #include<iostream> ...
- 洛谷 1373 dp 小a和uim之大逃离 良心题解
洛谷 1373 dp 这题还不算太难,,当初看的时候不是很理解题意,以为他们会选择两条不同的路径,导致整体思路混乱 传送门 其实理解题意和思路之后还是敲了不短的时间,一部分身体原因再加上中午休息不太好 ...
- 洛谷 P1373 小a和uim之大逃离
2016-05-30 12:31:59 题目链接: P1373 小a和uim之大逃离 题目大意: 一个N*M的带权矩阵,以任意起点开始向右或者向下走,使得奇数步所得权值和与偶数步所得权值和关于K的余数 ...
- 洛谷P1373 小a和uim之大逃离
P1373 小a和uim之大逃离 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从 ...
- 洛古 P1373 小a和uim之大逃离
P1373 小a和uim之大逃离 题目提供者lzn 标签 动态规划 洛谷原创 难度 提高+/省选- 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电 ...
- 洛谷1373 小a和uim之大逃离
洛谷1373 小a和uim之大逃离 本题地址:http://www.luogu.org/problem/show?pid=1373 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北 ...
- 【题解】 P1373 小a和uim之大逃离
题解 P1373 小a和uim之大逃离 传送门 一道dp好题 乍看此题,感觉要这样设计: \(dp(x)(y)(mod_{a})(mod_{uim})(0/1)\) , 但是我上午考试就MLE了,赶紧 ...
- 【题解】P1373 小a和uim之大逃离
[题解]P1373 小a和uim之大逃离 考虑到可能会MLE,考虑状态压缩一下 由于只要得到他们的差就行了,所以直接少记录一维就好了 \(dp(i,j,r,1/0)\)表示在\(i,j\)点,当前ui ...
随机推荐
- Django 2.0.7 使用小知识
Django 2.0.3 使用小知识 运行环境: Python 3.6.4 Django 2.0.7 Django Admin中model显示为中文 定义model时,定义一个Meta对象,设置需要显 ...
- Django开发登录功能实战
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:凡夫俗子66 Django 如果是定义函数写登录路由,需要判断请求方法 ...
- centos与内核版本对应关系
centos是基于redhat的二次开发,redhat会封装不同版本的内核,有时候,我们需要指定内核版本的centos,下面两个网站或许对你有帮助: https://access.redhat.com ...
- ACL(访问控制列表)
第六部分,访问控制列表.访问控制列表(Access Control List,ACL) 是路由器和交换机接口的指令列表,用来控制端口进出的数据包.应用场景有校园网中教师网和学生网分别管理,通过acl控 ...
- Spring boot 集成 阿里 Mqtt
因为公司业务需求,需要接入 阿里Mqtt,自己基于Spring写了一个小demo,记录下来,已备以后需要. 第一步 创建一个实体bean用来装载 MqttClient private MqttClie ...
- 【玩转SpringBoot】配置文件yml的正确打开姿势
序言 在很久以前,Spring的配置文件是基于XML的.它的名字就是applicationContext.xml,没错,就只有这一个xml文件. 它里面配置了所有的东西.但是数据库信息通常会单独拿出来 ...
- 【ES5 ES6】使用学习
[ES5 ES6]使用学习 转载: ============================================================= 1.Promise 2.下划线转驼峰,驼 ...
- 面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1.什么是 Redis?. 2.Redis 的数据类型? 3.使用 Redis 有哪些好处? 4.Redis 相比 Memcached 有哪些优势? 5.Memcache 与 Re ...
- python获取淘宝登入cookies
重点:去新浪微博登入接口登入 一.代码 # coding=utf-8 import requests from selenium.webdriver.common.by import By from ...
- css3 伪类实现右箭头→
css3 实现右箭头→ <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...