2016-05-30 12:31:59

题目链接: P1373 小a和uim之大逃离

题目大意:

  一个N*M的带权矩阵,以任意起点开始向右或者向下走,使得奇数步所得权值和与偶数步所得权值和关于K的余数都为0,并且要求奇数步等于偶数步

解法:

  动态规划

  DP[i][j][k][now];

  表示当前节点为(i,j),小A比uim多K,当前该now继续走的方案总数

  状态转移方程

    DP[i][j][k][1]=DP[i-1][j][(k+map[i][j])%(K+1)][0]+DP[i][j-1][(k+map[i][j])%(K+1)][0];

    DP[i][j][k][0]=DP[i-1][j][(k-map[i][j]+K+1)%(K+1)][1]+DP[i][j-1][(k-map[i][j]+K+1)%(K+1)][1];

    K表示瓶子的最大容量,所以要+1

    map[i][j]表示(i,j)的权值

    初始条件 DP[i][j][map[i][j]][0]=1;

需要注意的地方:

  注意是N和M,五十分调了半天就因为M写成了N

//小a和uim之大逃离 (洛谷 No.1373)
//动态规划
#include<stdio.h>
#include<algorithm>
using namespace std;
const int maxn=;
const int maxm=;
const int maxk=;
const int MOD=;
int map[maxn][maxm];
int DP[maxn][maxm][maxk][];
int N,M,K;
int ans;
int main()
{
scanf("%d %d %d",&N,&M,&K);
K++;
for(int i=;i<=N;i++)
{
for(int j=;j<=M;j++)
{
scanf("%d",&map[i][j]);
DP[i][j][map[i][j]][]=;
}
}
for(int i=;i<=N;i++)
{
for(int j=;j<=M;j++)
{
for(int k=;k<K;k++)
{
DP[i][j][k][]+=DP[i-][j][(k-map[i][j]+K)%K][];
DP[i][j][k][]+=DP[i][j-][(k-map[i][j]+K)%K][];
DP[i][j][k][]+=DP[i-][j][(k+map[i][j])%K][];
DP[i][j][k][]+=DP[i][j-][(k+map[i][j])%K][];
DP[i][j][k][]%=MOD;
DP[i][j][k][]%=MOD;
}
ans=(ans+DP[i][j][][]%MOD)%MOD;
}
}
printf("%d",ans);
}

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

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

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

  2. 【题解】洛谷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 ...

  3. 洛谷P1373 小a和uim之大逃离[背包DP]

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

  4. 洛谷 P1373 小a和uim之大逃离 Label:dp 不会

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

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

    正解:dp 解题报告: 传送门! 同样是看到列表发的题解就想着跟着做下dp的题目趴 然后发现还挺难的,,,反正我只大概想到怎么转移但是初始化什么的都不会TT 所以还是大概说下QAQ 首先可以想到设f[ ...

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

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

  7. 洛谷P1373 小a和uim之大逃离【线性dp】

    题目:https://www.luogu.org/problemnew/show/P1373 题意: 有一个n*m的地图,每个点上有一个数值.两个人在任一点开始任一点结束,只能往右或往下走,轮流收集数 ...

  8. 洛谷 P1373 小a和uim之大逃离 (差值型dp总结)

    这道题和多米诺骨牌那道题很像 ,都是涉及到差值的问题. 这道题是二维的,同时要取模. 这种题,因为当前的决策有后效性,会影响到差值,所以直接把 差值作为维度,然后计算答案的时候把差值为0的加起来就行了 ...

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

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

随机推荐

  1. MCM试题原文及翻译 AB题 2014美国数学建模竞赛

    MCM试题原文及翻译 AB题 2014美国数学建模竞赛 原创翻译,如有瑕疵,敬请谅解. 转载请注明:过客小站 » MCM试题原文及翻译 AB题 2014美国数学建模竞赛 PROBLEM A: The  ...

  2. DIY Ruby CPU 分析 Part II

    [编者按]作者 Emil Soman,Rubyist,除此之外竟然同时也是艺术家,吉他手,Garden City RubyConf 组织者.本文是 DIY Ruby CPU Profiling 的第二 ...

  3. vimrc for windows

    set nobackupsource $VIMRUNTIME/vimrc_example.vimsource $VIMRUNTIME/mswin.vimbehave mswin:color deser ...

  4. 智传播客hadoop视频学习笔记(共2天)

    第一天:1.答疑解惑•  就业前景•  学习hadoop要有什么基础•  hadoop会像塞班一样,热一阵子吗•  hadoop学习起来容易还是困难•  课堂上的学习方法(所有实验必须按照要求做,重原 ...

  5. linux命令之-pstree使用说明

    pstree  shows running processes as a tree. The tree is rooted at either pid or init if pid is omitte ...

  6. 关于PHP的十大误解 你中了几个?

    作为开发人员,你常常会在网上看到不使用XX的理由之类的新闻.而作为最受欢迎的开源服务器端脚本语言,PHP也难逃这样的命运.殊不知,金无足赤.人无完人,再流行的语言都会存在缺点,或者是误解,因此,有些开 ...

  7. Apache Wamp WampServer 配置多端口 多站点 虚拟目录

    第一步:配置Apache 的 httpd.conf #Listen 0.0.0.0:80Listen 80Listen 81 第二步:开启虚拟站点 所属文件:httpd.conf #Virtual h ...

  8. 【转】Picasso – Android系统的图片下载和缓存类库

    来源:http://blog.chengyunfeng.com/?p=492 另一篇参考:http://blog.csdn.net/xu_fu/article/details/17043231 Pic ...

  9. 1306.Sequence Median(堆排序)

    1306 URAL真是没水题 以为简单的排序就好了 ME  内存限制很紧 堆排序 或者 STL 用堆排序做的 正好复习一下 都忘了 #include <iostream> #include ...

  10. Webform——Repeater多表联合显示

    对于一个表里,通过外键连接如何显示另一个表的数据,前Winform里可以用封装类来实现. 对于Webform,可以用封装类,也可以用Repeater的ItemDataBound事件(//在项被绑定数据 ...