洛谷1373 小a和uim之大逃离

https://www.luogu.org/problem/show?pid=1373

题目背景

小a和uim来到雨林中探险。突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声。刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个披头散发、青面獠牙的怪物,低沉着声音说:“呵呵,既然你们来到这,只能活下来一个!”。小a和他的小伙伴都惊呆了!

题目描述

瞬间,地面上出现了一个n*m的巨幅矩阵,矩阵的每个格子上有一坨0~k不等量的魔液。怪物各给了小a和uim一个魔瓶,说道,你们可以从矩阵的任一个格子开始,每次向右或向下走一步,从任一个格子结束。开始时小a用魔瓶吸收地面上的魔液,下一步由uim吸收,如此交替下去,并且要求最后一步必须由uim吸收。魔瓶只有k的容量,也就是说,如果装了k+1那么魔瓶会被清空成零,如果装了k+2就只剩下1,依次类推。怪物还说道,最后谁的魔瓶装的魔液多,谁就能活下来。小a和uim感情深厚,情同手足,怎能忍心让小伙伴离自己而去呢?沉默片刻,小a灵机一动,如果他俩的魔瓶中魔液一样多,不就都能活下来了吗?小a和他的小伙伴都笑呆了!

现在他想知道他们都能活下来有多少种方法。

输入输出格式

输入格式:

 

第一行,三个空格隔开的整数n,m,k

接下来n行,m列,表示矩阵每一个的魔液量。同一行的数字用空格隔开。

 

输出格式:

 

一个整数,表示方法数。由于可能很大,输出对1 000 000 007取余后的结果。

 

输入输出样例

输入样例#1:
2 2 3
1 1
1 1
输出样例#1:
4

说明

【题目来源】

lzn改编

【样例解释】

样例解释:四种方案是:(1,1)->(1,2),(1,1)->(2,1),(1,2)->(2,2),(2,1)->(2,2)。

【数据范围】

对于20%的数据,n,m<=10,k<=2

对于50%的数据,n,m<=100,k<=5

对于100%的数据,n,m<=800,1<=k<=15

 

dp[i][j][h][0/1] 表示 走到了第i行第j列,此时(小a的魔液-uim的魔液)%(k+1)=h,这一步是小a/uim吸收的方案数

因为题目中说装了k+1时会变为0,所以模数为k+1

为什么差值可以取模?

还是因为 装到>k时,数量会清0

第一个人比第二个人多h还是少h 对转移没有影响

 

#include<cstdio>
using namespace std;
int a[801][801],dp[801][801][16][2];
#define mod 1000000007
void ADD(int &x,int y)
{x+=y; x-=(x>=mod) ? mod : 0; 
}
int main()
{int n,m,k;scanf("%d%d%d",&n,&m,&k);k++;for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)scanf("%d",&a[i][j]),dp[i][j][a[i][j]%k][0]=1;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)for(int h=0;h<k;h++){ADD(dp[i][j][h][0],(dp[i-1][j][(h-a[i][j]+k)%k][1]+dp[i][j-1][(h-a[i][j]+k)%k][1])%mod);ADD(dp[i][j][h][1],(dp[i-1][j][(h+a[i][j])%k][0]+dp[i][j-1][(h+a[i][j])%k][0])%mod);}int ans=0;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)ans=(ans+dp[i][j][0][1])%mod;printf("%d",ans);
}

 

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/7666127.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 日期处理工具类_Java日期处理工具类DateUtils详解

本文实例为大家分享了Java日期处理工具类DateUtils的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下import java.sql.Timestamp;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/*** */public…

Ipython知识点总结

初识Python&#xff1a; Python是一种面向对象、直译式计算机程序语言。也是一种功能强大而完善的通用型语言&#xff0c;已经具有十多年的发展历史&#xff0c;成熟且稳定。Python 具有脚本语言中最丰富和强大的类库&#xff0c;足以支持绝大多数日常应用。 Python语法简捷而清…

光刻技术的“鬼斧”之变

来源:脑极体 在我们今天看来&#xff0c;晶体管发明以后&#xff0c;集成电路的出现一直到今天超大规模集成电路的出现&#xff0c;似乎是一件水到渠成的事情。但是如果回到半导体产业初兴的历史现场&#xff0c;我们就会发现没有任何一项关键技术的突破是“必然产生”的。&…

php设置html全局路径_PHPCMS V9 URL去掉或修改/html路径的方法

PHPCMS V9 URL去掉或修改/html路径的方法&#xff0c;在后台找了好长时间没有找到在哪儿可以设置栏目生成的前缀路径/html,不过最终还是找到了。修改配置文件。找到\caches\configs\system.php 找到“html_root”这一项&#xff0c;然后把/html这个字符串删除即可。更新缓存&am…

[PA 2014]Kuglarz

Description 魔术师的桌子上有n个杯子排成一行&#xff0c;编号为1,2,…,n&#xff0c;其中某些杯子底下藏有一个小球&#xff0c;如果你准确地猜出是哪些杯子&#xff0c;你就可以获得奖品。花费c_ij元&#xff0c;魔术师就会告诉你杯子i,i1,…,j底下藏有球的总数的奇偶性。采…

城市大脑从起源到终极状态的7个阶段

0.序言21世纪以来&#xff0c;前沿科技领域出现诸多“大脑”概念&#xff0c;如谷歌大脑&#xff0c;百度大脑&#xff0c;阿里大脑&#xff0c;360安全大脑&#xff0c;腾讯超级大脑等&#xff0c;城市大脑&#xff0c;城市神经网络&#xff0c;工业大脑&#xff0c;航空大脑&…

php7 字符串,php7 参数、整形及字符串处理机制修改实例分析

本文实例讲述了php7 参数、整形及字符串处理机制修改。分享给大家供大家参考&#xff0c;具体如下&#xff1a;参数处理机制修改一、重复参数命名不再支持。重复的参数命名不再支持。比如下面的代码执行的时候会报错&#xff1a;public function foo($a, $b, $unused, $unused)…

【转】成功的背后

转载&#xff1a;来自CSDN第一名博主&#xff1a;http://blog.csdn.net/phphot/article/details/2187505 成功的背后&#xff0c;有着许多不为人知的故事&#xff0c;而正是这些夹杂着泪水和汗水的过去&#xff0c;才成就了一个个走向成功的普通人。 凌晨两点半&#xff0c;早已…

地理信息技术加持 用数字孪生让城市更“聪明”

文章转载自微信公众号中地数码MapGIS&#xff0c;版权归原作者及刊载媒体所有。相关资料表明&#xff0c;过去二十年&#xff0c;中国智慧城市建设投资巨大&#xff0c;建设的传感网络已经领先全球&#xff0c;但硬件重复建设&#xff0c;多注重单方面的智慧化建设&#xff0c;…

php5.3升级5.4,centos php 5.3升级到 php5.4版本

centos php 5.3升级到 php5.4版本发布时间&#xff1a;2020-06-20 06:07:39来源&#xff1a;51CTO阅读&#xff1a;1021作者&#xff1a;kuingfuturephp5.3听说有bug&#xff0c;因此单独升级php5.3相关的版本到5.4具体步骤:下面是我之前的版本之前php版本是:[rootlocalhost ~]…

你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)

转http://www.cnblogs.com/zhijianliutang/p/4100103.html 前言 本篇主要是上一篇文章的补充篇&#xff0c;上一篇我们介绍了SQL Server服务启动过程所遇到的一些问题和解决方法&#xff0c;可点击查看&#xff0c;我们此篇主要介绍的是SQL Server启动过程中关于用户数据库加载…

可持续发展的人工智能

微软亚洲研究院副院长刘铁岩在 WAIC 2020 微软论坛演讲视频来源&#xff1a;微软研究院AI头条可持续发展是一个非常重要的主题&#xff0c;无论是环保、健康、能源和材料&#xff0c;都与人类的生存和发展息息相关。随着工业的发展和科技的进步&#xff0c;我们看到大气、水质、…

php width,PHP imagefontwidth()用法及代码示例

imagefontwidth()函数是PHP中的内置函数&#xff0c;用于获取指定字体中字符的像素宽度。用法:int imagefontwidth( int $font )参数&#xff1a;该函数接受一个包含字体的单个参数$font。对于内置字体&#xff0c;它可以是1、2、3、4、5。对于自定义字体&#xff0c;它可以与i…

Sqring核心概念

Spring 是大规模企业级框架&#xff0c;用户数量多&#xff0c;数据规模大&#xff0c;功能众多&#xff0c;业务复杂&#xff0c; 性能和安全要求高 灵活多变 Spring框架是轻量级的框架&#xff0c;javaEE的春天&#xff0c;当前主流的框架&#xff0c;一站式的企业应用开发…

台积电2纳米获得重大突破

来源&#xff1a;经济日报&#xff08;台&#xff09;台积电冲刺先进制程&#xff0c;在2纳米研发有重大突破&#xff0c;已成功找到路径&#xff0c;将切入GAA&#xff08;环绕闸极&#xff09;技术&#xff0c;为台积电发展鳍式场效电晶体&#xff08;FinFET&#xff09;取得…

php url乱码java接收,java中url乱码解决方法

java中url乱码解决方法&#xff1a;(推荐&#xff1a;java视频教程)1、将字符串转码&#xff1a;newString(“xxxxx”.getBytes(“iso-8859-1”),”utf-8”)这种转码方式有很大的弊端&#xff0c;因为它是使用指定的字符集将此String编码为 byte 序列&#xff0c;并将结果存储到…

腾讯首次发布 AI 白皮书讲了什么?

来源 | 腾讯研究院&#xff08;转载请注明来源&#xff09;编辑 | 蒲蒲近日&#xff0c;在世界人工智能大会腾讯论坛上&#xff0c;腾讯集团副总裁、腾讯研究院院长司晓正式发布了《腾讯人工智能白皮书&#xff1a;泛在智能》&#xff08;以下简称白皮书&#xff09;。作为腾讯…

String, StringBuffer, StringBuilder之间的区别

String与StringBuffer/StringBuilder之间的主要区别 1.String对象不可变, 如果修改会重新创建一个对象, 然后把值保存进去. StringBuffer/StringBuilder对象是可变的. 2.String性能远远低于StringBuffer/StringBuilder 3.StringBuilder速度稍快于StringBuffer, 但与此带来的缺陷…

php代码怎么修改成laravel,Laravel框架实现即点即改功能的方法分析

本文实例讲述了Laravel框架实现即点即改功能的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;有的时候我们不需要更改大量数据,只需要更改一个字段的时候,我们就用到了即点即改,以用户模块,修改用户名称为例,下图为我的展示模块当我们点击用户名时,会出现一个修改…