1212. 地宫取宝

news2024/10/7 4:26:49

题目:

1212. 地宫取宝 - AcWing题库

 

 思路:dp(最长上升子序列和摘花生的结合)

代码:

 

#include<iostream>
using namespace std;
const int N = 55;
const int MOD = 1000000007;

int n, m, k;
int w[N][N];//每个坐标格子上宝贝的价值

int f[N][N][13][14];/*f是当前条件下的方案数量。
前两维表示坐标
三维表示已经取得的宝贝数量
四维表示已经取得的宝贝中的最后一个宝贝的价值(即当前最大)*/

int main()
{
	//输入行n列m以及所需要的宝贝数量k
	cin >> n >> m >> k;

	//输入每个格子宝贝的价值
	for(int i=1;i<=n;i++)
		for (int j = 1; j <= m; j++) {
			cin >> w[i][j];
			w[i][j]++;//为方便对f进行初始化,将每个宝贝的价值都加一,不影响结果
		}

	//f初始化
	f[1][1][0][0] = 1;//起点,不拿起点坐标格子上的宝贝
	/*此时没有取任何一件宝贝,故存入的最大值为空,应该比所以宝贝的价值都小。
	宝贝原本的最小值为0,但下标不能取负数,这也是为何上面要将宝贝的整体价值加一的原因*/
	f[1][1][1][w[1][1]] = 1;//起点,拿起点坐标格子上的宝贝
	
	for(int i=1;i<=n;i++)//一维横坐标
		for (int j = 1; j <= m; j++) {//二维纵坐标
			if (i == 1 && j == 1)continue;//f的第一行第一列已经初始化过了

			for(int u=0;u<=k;u++)//三维表示已经取得宝贝数量
				for (int v = 0; v <= 13; v++)//四维表示已取得宝贝的最大价值
				{
					//不取当前空格的宝贝
					f[i][j][u][v] = (f[i][j][u][v] + f[i - 1][j][u][v]) % MOD;//存图左上角
					f[i][j][u][v] = (f[i][j][u][v] + f[i][j - 1][u][v]) % MOD;//存图左上角

					//取当前空格的宝贝
					if (u > 0 && v == w[i][j])//此时当前格子上的宝贝的价值为最大v
					{
						for (int c = 0; c < v; c++)
						{
							f[i][j][u][v] = (f[i][j][u][v] + f[i - 1][j][u - 1][c]) % MOD;//图左下
							f[i][j][u][v] = (f[i][j][u][v] + f[i][j - 1][u - 1][c]) % MOD;//图右下
						}
					}
				}
		}
	int res = 0;//累加器,求到达右下角(m,n)时所以取得宝贝数量为k且满足递增条件的情况
	for (int i = 0; i <= 13; i++)res = (res + f[n][m][k][i]) % MOD;
	cout << res << endl;

}

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

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

相关文章

【Leetcode】【数据结构】【C语言】判断两个链表是否相交并返回交点地址

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {struct ListNode *tailAheadA;struct ListNode *tailBheadB;int count10;int count20;//分别找尾节点&#xff0c;并顺便统计节点数量&#xff1a;while(tailA){tailAtailA->next;c…

变电站自动化系统中的安全措施分析及应用-安科瑞

安科瑞电气股份有限公司 上海嘉定 201801 摘要&#xff1a;阐述变电运行中的问题&#xff0c;电气自动化系统与安全运行措施&#xff0c;包括自动控制设备的投入&#xff0c;电气自动 化与计算机技术相、设备数据的采集与处理、自动化系统的升级、人工智能技术的应用。 关键…

第三章:人工智能深度学习教程-基础神经网络(第五节-了解多层前馈网络)

让我们了解反向传播网络 (BPN) 中的误差是如何计算的以及权重是如何更新的。 考虑下图中的以下网络。 反向传播网络(BPN) 上图中的网络是一个简单的多层前馈网络或反向传播网络。它包含三层,输入层有两个神经元 x 1和 x 2,隐藏层有两个神经元 z 1和 z 2,输出层有一个神经…

跨平台使用:第三方美颜SDK在多种操作系统上的应用

当下&#xff0c;美颜SDK已经演化为一种跨平台的现象&#xff0c;使用户能够在不同的操作系统上享受到相似的美颜效果。这一现象的背后&#xff0c;有一系列强大的第三方美颜SDK&#xff0c;它们在多种操作系统上广泛应用&#xff0c;为用户提供了卓越的美颜体验。 一、美颜S…

机器人阻抗与导纳控制的区别

机器人自身的非线性动力学&#xff08;由柔软性引起的&#xff09;导致控制精度下降&#xff0c;因此难以描述准确的动力学。 导纳控制和阻抗控制都是基于位置与力关系的模式&#xff0c;被认为具有鲁棒性和安全性。然而&#xff0c;当机器人与刚体接触时&#xff0c;导纳控制常…

Android codec2 视频框架 之输入buffer

文章目录 输入端的内存管理输入数据包buffer结构体的转换 主要的流程如上&#xff0c; 申请内存在CCodecBufferChannel&#xff0c;申请之后回调到MediaCodec。然后应用从MediaCodec获取 将解码数据放到buffer中&#xff0c;CCodecBufferChannel在将这块buffer 送到componet模块…

uniapp:打包ios配置隐私协议框

使用uniapp打包ios 上架商店需要配置隐私协议政策弹窗。当用户点击确定后才能继续操作。 首先manifest.json中配置使用原生隐私政策提示框是不支持ios的。不用勾选。 解决思路&#xff1a; 1、新建页面&#xff1a;iosLogin.vue&#xff0c;pages.json中 这个页面需要放在第一…

20道高频JavaScript面试题快问快答

※其他的快问快答&#xff0c;看这里&#xff01; 10道高频Qiankun微前端面试题快问快答 10道高频webpack面试题快问快答 20道高频CSS面试题快问快答 20道高频JavaScript面试题快问快答 30道高频Vue面试题快问快答 面试中的快问快答 快问快答的情景在面试中非常常见。 在面试过…

[100天算法】-最短无序连续子数组(day 66)

题目描述 给定一个整数数组&#xff0c;你需要寻找一个连续的子数组&#xff0c;如果对这个子数组进行升序排序&#xff0c;那么整个数组都会变为升序排序。你找到的子数组应是最短的&#xff0c;请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15] 输出: 5 解释: 你只需要…

LightingChart JS 5.0 Crack

LightingChart JS快如闪电、交互式且响应灵敏的 2D 和 3D JavaScript图表。下一代、世界上最快的 JS 图表 JS交互示例 交互式示例是一种易于使用的探索工具&#xff0c;可帮助您快速开始了解最重要的概念。在这里您可以实时搜索、查看和编辑图表。 高性能 JS 图表 基于 WebGL…

@ControllerAdvice + @ExceptionHandler 定义全局异常

创建Spring Boot项目&#xff1a;使用Spring Initializr创建一个新的Spring Boot项目。依赖配置&#xff1a;在pom.xml 文件中(方便起见使用的是thymeleaf模板引擎)&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId&…

设计模式之观察者(Observer)

事件处理模型 小朋友睡醒了就哭&#xff0c;饿 写程序模拟这个过程&#xff1a; v1:最简单的就是写程序一直观察着&#xff0c;什么时候哭了就进行处理 /*** 披着面向对象外衣的面向过程*/ public class Main1 {public static void main(String[] args) {boolean cry false…

print(torch.cuda.is_available()) False如何解决?GTX3090

首先介绍环境&#xff1a; 保证Cuda与Pytorch的版本对齐就可以了。 nvcc -V 查看原来装的是cuda11.3版本 去Pytorch官网找到相应指令下载即可&#xff1a; CtrlF&#xff1a;cuda11.3 就在诸多版本中找到啦,一定找 torch的版本cuda版本。我之前错误安装的torch&#xff0c;只…

小程序游戏对接广告收益微信小游戏抖音游戏软件

小程序游戏对接广告是一种常见的游戏开发模式&#xff0c;开发者可以通过在游戏中嵌入广告来获取收益。以下是一些与小程序游戏对接广告收益相关的关键信息&#xff1a; 小程序游戏广告平台选择&#xff1a; 选择适合你的小程序游戏的广告平台非常重要。不同的平台提供不同类型…

【Python基础】 模块和包的创建及使用(windows 下制作和发布压缩包超详细)

模块和包的创建及使用 1.模块1.1模块的概念1.2 模块的两种导入方式1.3 模块的搜索顺序[扩展]1.4 原则—— 每一个文件都应该是可以被导入的 2.Package-包2.1制作和发布压缩包2.2包的安装 1.模块 1.1模块的概念 模块是Python 程序架构的一个核心概念 • 每一个以扩展名py 结尾…

茶楼计时茶室时钟计费系统,佳易王共享茶室收银计时收费管理系统软件下载

茶楼计时茶室时钟计费系统&#xff0c;佳易王共享茶室收银计时收费管理系统软件下载 软件功能&#xff1a; 1、计时计费功能&#xff1a;可以按单价计费&#xff0c;可以按时间段计费。时间显示直观&#xff0c;每个桌子用时一目了然。每个桌子价格可以设置相同也可以不相同。…

卡码网语言基础课 |句子缩写

卡码网语言基础课 &#xff5c;句子缩写 字符大小的比较题目分析判断大小写字母与转换为大写字母正确检测词语而非空格 代码实现函数的使用形参和实参引用 字符大小的比较 字符串是一个个字符组合而成的&#xff0c;比如字符串"hello"&#xff0c;是由字符(char)类型…

centos 7.9系统安装老版本jenkins,并解决插件问题

1.初衷 因为jenkins随着时间推移&#xff0c;其版本也越来越新&#xff0c;支持它运行的JDK也越来越新。基于不折腾的目标&#xff0c;我们安装一个老的固定版本就行。以前安装新版本&#xff0c;经常碰到的问题就是插件安装不兼容的问题。现在这个问题&#xff0c;可以把以前…

001. 变量、环境变量

1、在终端中显示输出 shell脚本通常以shebang起始&#xff1a;#&#xff01;/bin/bash/ shebang是一个文本行&#xff0c;其中#!位于解释器路径之前。/bin/bash是Bash的解释器命令路径。bash将以#符号开头的行视为注释。脚本中只有第一行可以使用shebang来定义解释该脚本所使…

[工业自动化-5]:西门子S7-15xxx编程 - PLC系统初识别 :PLC概述与发展史

目录 前言&#xff1a; 一、PLC的由来&#xff1a;自动化产线的大脑 二、PLC发展史 三、常见的PLC厂家&#xff1a;欧洲日本 四、PLC VS 电脑 4.1 PLC VS CPU 4.2 PLC VS 单片机 4.3 PLC VS 工控机 五、PLC系统组成 参考&#xff1a; 前言&#xff1a; 一、PLC的由来…