洛谷P1373 小a和uim之大逃离 dp
正解:$dp$
解题报告:
看到别的神仙在做就想着跟着做下$dp$的题目趴
然后发现还挺难的,,,反正我只大概想到怎么转移但是初始化什么的都不会$TT$
所以还是大概说下$QAQ$
首先可以想到设$f[i][j][k]$表示小$a$走到$(i,j)$的位置,与$uim$毒液值相差$j$的方案数 $g$表示$uim$
然后大力转移这里不难,大概写下式子
$f[i][j][k]=(f[i][j][k]+g[i-1][j][(k-a[i][j]+v)%v])%mod$
$f[i][j][k]=(f[i][j][k]+g[i][j-1][(k-a[i][j]+v)%v])%mod;$
$g$同理不想写了QwQ
关键在初始化,,,这个点反正我是没想到的(,,,我$jio$得$dp$我最差的差不多就是初始化,,,所以我爱记搜
初始化是这样的,首先看到这道题给的条件:
可以从任意一个格子开始,而且必须是小a开始
所以我们只用对小$a$的$f$初始化一下,$f[i][j][a[i][j]%v]=1$就好
哦还有一个小注意点还是港下,就是,思考一下第三维要不要开两倍鸭
答案是不要,为什么呢,因为它都是在$mod\ v$意义下的,所以$-k=-k+v$,$get$?
没啦!
最后计数算方案什么的还是挺简单的?不想说了$QwQ$
# include <bits/stdc++.h>
using namespace std;
#define ll int
#define rg register
#define rp(i,x,y) for(rg ll i=x;i<=y;++i)
#define my(i,x,y) for(rg ll i=x;i>=y;--i) const ll N=+,P=,mod=;
ll f[N][N][P],g[N][N][P],as,n,m,p,fld[N][N]; inline ll read()
{
rg ll x=;rg bool y=;rg char ch=getchar();
while(ch!='-' && (ch>'' || ch<''))ch=getchar();
if(ch=='-')y=,ch=getchar();
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=getchar();
return y?x:-x;
} int main ()
{
n=read();m=read();p=read()+;rp(i,,n)rp(j,,m)fld[i][j]=read()%p,f[i][j][fld[i][j]]=;
rp(i,,n)
rp(j,,m)
{
rp(k,,p-)
{
f[i][j][k]=((f[i][j][k]+g[i][j-][(k-fld[i][j]+p)%p])%mod+g[i-][j][(k-fld[i][j]+p)%p])%mod;
g[i][j][k]=((g[i][j][k]+f[i][j-][(k+fld[i][j])%p])%mod+f[i-][j][(k+fld[i][j])%p])%mod;
}
as=(as+g[i][j][])%mod;
}
printf("%d\n",as);
return ;
}
这儿是代码!
做完题之后上来$repo$一个神坑点,,,
你以为$v$就是膜数嘛,,,仔细看下题,,,$v+1$才是膜数啊,,,然后样例还奇水无比我开始没发现样例也过了然后惨遭爆零$TT$
啊还有,,,就是,这题也不能开$ll$,会$MLE$昂,,,
洛谷P1373 小a和uim之大逃离 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之大逃离(坐标DP)
次元传送门:洛谷P1373 思路 设f[i][j][t][1/0]表示走到(i,j)时 小a减去uim的差值为t 当前是小a取(0) uim取(1) 那么转移就很明显了 f[i][j][t][]=(f ...
- 洛谷P1373 小a和uim之大逃离[背包DP]
题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...
- 洛谷 P1373 小a和uim之大逃离 Label:dp 不会
题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...
- 洛谷 P1373 小a和uim之大逃离 题解
每日一题 day30 打卡 Analysis f[i][j][p][q]表示他们走到(i,j),且两人魔瓶内魔液量的差为p时的方法数.q=0表示最后一步是小a走的,q=1表示最后一步是uim走的.题目 ...
- 洛谷P1373 小a和uim之大逃离【线性dp】
题目:https://www.luogu.org/problemnew/show/P1373 题意: 有一个n*m的地图,每个点上有一个数值.两个人在任一点开始任一点结束,只能往右或往下走,轮流收集数 ...
- 洛谷 P1373 小a和uim之大逃离 (差值型dp总结)
这道题和多米诺骨牌那道题很像 ,都是涉及到差值的问题. 这道题是二维的,同时要取模. 这种题,因为当前的决策有后效性,会影响到差值,所以直接把 差值作为维度,然后计算答案的时候把差值为0的加起来就行了 ...
- 洛谷1373 小a和uim之大逃离
洛谷1373 小a和uim之大逃离 本题地址:http://www.luogu.org/problem/show?pid=1373 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北 ...
随机推荐
- Win7配置SVN详细步骤(服务器和客户端)
下载并安装服务器端SVN VisualSVN Server 下载并安装客户端SVN TortoiseSVN 创建SVN库 在C盘创建文件夹MySVN(可自由命名),打开文件夹----右键Torto ...
- nginx重写规则配置
https://segmentfault.com/a/1190000002797606 location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符 ...
- V4L2规范编程--21
原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 资料链接:http://www.cnblogs.com/emouse/archive/2013/ ...
- mybatis由浅入深day01_5mybatis开发dao的方法(5.1SqlSession使用范围_5.2原始dao开发方法)
5 mybatis开发dao的方法 5.1 SqlSession使用范围 5.1.1 SqlSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂 ...
- Javascript中的感叹号和函数function
js函数前加分号和感叹号是什么意思?有什么用?:http://www.cnblogs.com/mq0036/p/4605255.html function与感叹号:https://swordair.c ...
- Python 转义字符
转义字符 说明 \ 用在一行的末尾,表示续行符 \r 回车 \n 换行符 \\ 打印反斜杠 \' 打印单引号 \" 打 ...
- 基于Cocos2d-x学习OpenGL ES 2.0系列——纹理贴图(6)
在上一篇文章中,我们介绍了如何绘制一个立方体,里面涉及的知识点有VBO(Vertex Buffer Object).IBO(Index Buffer Object)和MVP(Modile-View-P ...
- PyQt4 Box布局
使用布局类别方式的布局管理器比绝对方式的布局管理器更加灵活实用.它是窗口部件的首选布局管理方式.最基本的布局类别是QHBoxLayout和QVBoxLayout布局管理方式,分别将窗口部件水平和垂直排 ...
- MQTT-SN协议乱翻之小结篇
前言 这里简单做一些小结和对比,针对前面的协议翻译部分,一阶段的学习完结. MQTT-SN VS MQTT MQTT-SN基于MQTT原有语义,但做了很多的调整.比如: 一个CONNECT消息被拆分为 ...
- 浅析HTTPS与SSL原理
版权声明:本文由盛旷 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/134 来源:腾云阁 https://www.qclo ...