hdu-1078 FatMouse and Cheese (and) 滑雪问题(记忆化搜索+简单dp)

滑雪(动态规划) Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子  1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 阅读详情

记忆化搜索+简单dp

hdu-1078 FatMouse and Cheese题目链接:点击打开链接

题意:老鼠每次只能走K步停下来,所以多加一个for循环即可。停下的位置只能比上次停下的位置价值大

其实就是滑雪问题的加强版。用一个数组保存记忆。。。。

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
#define max(a,b) a<b?b:a

int n,k;
int map[111][111],sum[111][111];//sum[][]保存记忆。。。
int dir[4][2]={0,-1,0,1,-1,0,1,0};


int dfs(int x,int y)
{
	int m,ans=0;
	if(sum[x][y])
		return sum[x][y];
		for(int i=0;i<4;i++)
		{
			for(int j=1;j<=k;j++)	//遍历各个距离1~k
			{
				int s,t;
				s=x+dir[i][0]*j;	//取点
				t=y+dir[i][1]*j;
				if(s>=0&&s<n&&t>=0&&t<n)
				{
					if(map[s][t]>map[x][y])	//下一个点必须比当前点数值大 
					{
						m=dfs(s,t);//记录下一个点的最大值
						ans=max(ans,m); 
					}
				} 
			} 
		}
		sum[x][y]=ans+map[x][y];
		return sum[x][y];//返回当前点的最大值 
}

int main()
{
	while(scanf("%d%d",&n,&k),n!=-1&&k!=-1)
	{
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				scanf("%d",&map[i][j]);
		memset(sum,0,sizeof(sum));
		int ans=dfs(0,0);
		printf("%d\n",ans);
	}
	return 0;
}

下面是滑雪代码:大家可以参考对比一下,,,也方便自己复习总结。。。大笑

#include <stdio.h>
#include <string.h>
int dir[4][2]={1,0,-1,0,0,1,0,-1};//方向
int dp[101][101],map[101][101];//dp[x][y]保存记忆。。。
int m,n;
int max(int x,int y)
{
	return x>y?x:y;
}
bool limit(int x,int y)//是否出界
{
	if(x<0||y<0||x==m||y==n)
	return false;
	return true;
}
int dfs(int x,int y)
{
	if(dp[x][y]!=0) return dp[x][y];
	for(int i=0;i<4;i++)
	{
		int x_i=x+dir[i][0];
		int y_i=y+dir[i][1];
		if(limit(x_i,y_i)&&map[x][y]>map[x_i][y_i]&&dp[x][y]<dfs(x_i,y_i)+1)
		dp[x][y]=dp[x_i][y_i]+1;
	}
	return dp[x][y];
}
int main()
{

	while(scanf("%d %d",&m,&n)!=EOF)
	{
		memset(map,0,sizeof(map));
		memset(dp,0,sizeof(dp));
		for(int i=0;i<m;i++)
			for(int j=0;j<n;j++)
				scanf("%d",&map[i][j]);
		int num=0;
		for(int i=0;i<m;i++)
			for(int j=0;j<n;j++)
			{
				num=max(num,dfs(i,j));
			}
		printf("%d\n",num+1);
    }
	return 0;
}




PyRoki 入门教程(二)安装与使用 PyRoki是一个用于机器人运动学优化的Python库,具有模块化设计、可扩展性和跨平台支持等特点。它支持逆运动学、轨迹优化和动作重定位等任务,采用Levenberg-Marquardt优化器提高效率。主要功能包括:基于URDF的可微分正向运动学模型、自动生成碰撞基元、通用成本因子和自定义成本函数等。PyRoki支持CPU、GPU和TPU运行,适用于从单机器人到大规模并行处理场景。目前存在一些限制,如仅支持软约束、静态形状和特定关节类型等。官方提供了多个应用示例,包括基础逆运动学、碰撞检测、轨迹优化和手部/ 阅读详情

相关推荐

DAC60501与STM32的I2C通信实战:从寄存器配置到电压输出

本文详细介绍了如何使用STM32通过I2C通信驱动DAC60501数模转换器,实现精确的模拟电压输出。内容涵盖从硬件连接到软件模拟I2C驱动编写,再到DAC寄存器配置与电压计算的全流程实战指南,并提供了关键的驱动实例代码和常见问题调试技巧,帮助开发者快速掌握这一嵌入式开发中的实用技能。

weixin_29197835的博客 368

HDU-1088 -- 滑雪 [记忆化搜索] [深搜]

滑雪     Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 68005 Accepted: 25017   Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走

11:00 啦 1074

基于Unity引擎利用OpenCV和MediaPipe的面部表情和人体运动捕捉系统

增加了模型的绑定,利用Mediapipe这个强大的库可以实现识别面部表情的捕捉和人体结构运动的捕捉,基于以上的特性加入到Unity的人物模型中,实现实时的面部表情和人体运行的捕捉

BIgbossyii的博客 1万+

hdu 1088 滑雪(记忆化搜索)

题目分析:不能从最小的开始搜索,也不能从最大的开始搜索,因为最小的可能被封住了,,,所以每个位置都搜索一遍,,,找出最大的一个,,,还有所过的不能被清掉,不然会TLE..... #include #include #include using namespace std; int maze[110][110],dp[110][110],dir[4][2]={{1,0},{-1,0},{0,1

Stay hungry,stay foolish! 1349

心电图机原理及电路超详细讲解

前置心电放大电路(虚线框:这是隔离电路的分界,在隔离电路分析中知道,完整隔离包括信号隔离(脉宽调制)、控制信号隔离(光电耦合)和电源隔离)后级放大电路。

fcxgfdjy的博客 2万+

“华为”云桌面系统声音比较小,如何调大?

调整操作系统声音 开启云桌面,登录账户之后,进入操作系统,鼠标左键点击右下角的声音图标,把声音调到最大(如下图); 可以考虑使用浏览器在线听音乐,确定声音的音量! 如果只是耳麦声音小,可以鼠标右键点击声音图标,选择录音设备(R),如下图: 点击“录音设备(R)”后进入,鼠标右键点击“麦克风”选择属性,将侦听级别调至最大,确定! 调整华为云终端声音(软设置) 将鼠标移至桌面的顶端中间位置,打开如下图的样式图标,鼠标左键点击“主页”; 点击“主页”之后,将回到云桌面的终端操作界面,

shunchang的专栏 2337

滑雪(百炼 1088 动态规划)

  滑雪 查看 提交 统计 提问 总时间限制:  1000ms   内存限制:  65536kB 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 ...

SYITwin的博客 2072

开源收银系统_大型收银系统源码_OctShop

开源收银系统正成为大型连锁企业数字化转型的关键工具。相比传统闭源系统,开源方案具有成本低(年均降本60%+)、定制灵活(支持多业态协同)、自主可控等优势,能有效解决高并发、多门店数据同步等痛点。核心价值在于:1)分布式架构适配规模化扩张;2)模块化设计实现个性化开发;3)开放接口打通ERP/CRM等系统。典型案例显示,连锁商超通过源码二次开发实现库存实时同步,补货效率提升50%;餐饮集团统一多业态收银流程后会员复购率增长35%。选型需关注源码成熟度、技术兼容性和安全合规,建议采用"开源+服务商&q

OctShop全栈工程师 940

tyvj 1004

滑雪 From huangrl 背景 Background 成成第一次模拟赛 第三道 描述 Description     trs喜欢滑雪。他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来

OI 705

simulink的电动汽车制动系统热管理仿真

本文系统研究了电动汽车制动系统热管理仿真技术。通过建立机电液多物理场耦合模型,分析了不同工况下的动态热平衡特性。提出基于MPC的动态调节和NSGA-II多目标优化算法,使电池温度波动降低60%。创新性采用石墨烯相变材料与微通道液冷复合技术,冷却系统能耗减少40%。研究构建了完整的工程验证平台,涵盖200kW电制动测试台和高精度热成像系统。展望指出,未来将结合Transformer预测和强化学习算法,进一步优化热管理策略。该研究为电动汽车制动系统热管理提供了从理论建模到工程实施的完整解决方案。

xiaoheshang_123的博客 122

【大模型】Coze AI 智能体工作流从配置到使用实战详解

Coze 扣子智能体工作流从配置到使用实战详解

congge 1万+

POJ 1088 滑雪 && HDU 1078 FatMouse and Cheese (坐标DP两题对比)

POJ 1088 滑雪 HDU 1078 FatMouse and Cheese 两题题意大致相同,做法也相同,差别在于最后输出,到底是直接输出dp[1][1](我使用 1,1 点作为起点),还是在dp数组中选择最大值。我因为没考虑清这个问题,两题分别用了另一题的输出方式。。。。 首先在做滑雪的时候,因为测试样例能够遍历全图,所以我直接在最后输出了dp[1][1],然后提交一直WA,后来

JasonWu的博客 275

Java数据可视化实战:基于JFreeChart的数学函数绘图工具开发

JFreeChart是一个开源的Java图表库,适用于Swing和JavaFX应用程序。折线图和面积图柱状图和饼图散点图和气泡图组合图表3D图表等实现自定义数学表达式解析:java复制下载throw new IllegalArgumentException("表达式不能为空");// 验证表达式try {}");throw new IllegalArgumentException("无效的数学表达式: " + e.getMessage());try {

2201_76125393的博客 365

FatMouse and Cheese (记忆化搜索)

HDU - 1078  FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension n: each grid location is labelled (p,q) where 0 &lt;= p &lt; n and 0 &lt;= q &lt; n. At...

qq_42759455的博客 245

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

HDU1078 FatMouse and Cheese(记忆化dfs+DP)

Problem Description FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension n: each grid location is labelled (p,q) where 0 &lt;= p &lt; n and 0 &lt;= q &lt...

pxlsdz的博客 251

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

hdu 1078 FatMouse and Cheese (记忆化搜索 )

FatMouse and Cheese Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3509    Accepted Submission(s): 1388 Problem Description FatMou

To be what you what to be! 920

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

HDU 1078 FatMouse and Cheese【记忆化搜索】

Problem Description FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension n: each grid location is labelled (p,q) where 0 <= p < n and 0 <=...

dianxuanzhi1019的博客 138

[动态规划/记忆化搜索]HDU/HOJ 1078 FatMouse and Cheese

<br />http://acm.hdu.edu.cn/showproblem.php?pid=1078<br /> <br />题意类似POJ 1088 滑雪。<br />http://poj.org/problem?id=1088<br /> <br />可能首先会想到DFS暴搜,但是N>12基本是TLE了,然后可以发现是很简单的递推。<br />类似小蜜蜂,用记忆化搜索实现比较简单。<br /> <br />#include<iostream> using namespace std; const

FOBNN + ACCESSION + 2011 506

HDU - 1078 FatMouse and Cheese

input: 3 1 1 2 5 10 11 6 12 12 7 -1 -1v    output: 37    题目大意: 一个n×n的矩阵,老鼠每次只能吃比上大的食物所在的区域,每次老鼠只能垂直或者水平移动[1,k]步,求老鼠最 多能吃多少食物。    分析: dp+dfs。跟滑雪有点类似,dp[i][j]=(...

DDDDDDDDDD4444444444的博客 218

记忆化搜索:HDU1078-FatMouse and Cheese(记忆化搜索)

FatMouse and Cheese Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2394 Accepted Submission(s): 913 Problem Description FatMouse has st

二营长的意大利炮友 300

HDU 1078 FatMouse and Cheese

题目分析 这道题跟poj上面的滑雪是一样的题目,但是这道题改变的地方有,每一次可以移动k步,而不是一步,很明显多加一重循环就可以了,同时那道题求得是递减的长度,这道题求得是递增得到的最大数量的奶酪。直接记忆化搜索就可以了。 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using nam

你真的介意真的在乎真的想要真的渴望的话你一定能够做到 281

hdu(1078)——FatMouse and Cheese(递推型动归)

题意: 现在有n*n的方块,然后每个方块中都有一个值,代表这个方块中含有奶酪的数量。 现在那个老鼠站在(0,0)点,并且它每次最多走k步,然后每次走到一个点,它都能获得那个点上含有的值,但是要保证它下次走到的点含有的奶酪数必须多于它现在在的那个位置上的奶酪数量。 思路: 这道题也是一道递推性动归,和poj 1088 滑雪那题的区别就是这题最多可以走k步。 这道题让我更加深刻的理解了递推性

ACM_hades的梦想之路 781

HDU 1078 FatMouse and Cheese(记忆化搜索)

  题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078        题意是给了两个数n和k,表示有n*n的地图,地图的每个点都有一个权值,有一只老鼠从0,0开始吃奶酪,它可以走上下左右四个方向,一次可以移动1到k个单位,而且每次移动的权值都要比上一次的权值大,最后输出一个最大值。        算是记忆化搜索的入门题了吧,和poj那道滑雪...

Charles_Zaqdt的博客 223

HDU ~ 1078 ~ FatMouse and Cheese (记忆化搜索)

题意: 有一种游戏是的玩法是这样的: 有一个n*n的格子,每个格子有一个数字。 遵循以下规则: 1. 玩家每次可以由所在格子向上下左右四个方向进行直线移动,每次移动的距离不得超过m 2. 玩家一开始在第一行第一列,并且已经获得该格子的分值 3. 玩家获得每一次移动到的格子的分值 4. 玩家下一次移动到达的格子的分值要比当前玩家所在的格子的分值要大。 5. 游戏所有数字加起来也不大,保...

张松超的博客 326

HDU 1078 FatMouse and Cheese(记忆化搜索)

FatMouse and Cheese Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8610Accepted Submission(s): 3611 Problem Description ...

weixin_30871701的博客 81
上一篇: hdu-1241 Oil Deposits (and) nyoj-27 水池数目
下一篇: hdu-1728 逃离迷宫
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值