当前位置: 首页 > news >正文

OD C卷 - 中庸行者

中庸行者 (200)

  • 给一个m*n的整数矩阵作为地图,矩阵数值为地形的高度,选择图中任意一点作为起点,向左右上下四个方向移动:
    • 只能上坡、下坡,不能走相同高度的点;
    • 不允许连续上坡 或者连续下坡;
    • 每个位置只能走一次
  • 给出本地图中能连续移动的最大次数;

输入描述:
输入row, col
后续输入地图数据
输出描述:
能连续移动的最大次数

示例1
输入:
2 2
1 2
4 3
输出:
3

示例2
输入:
3 3
1 2 4
3 5 7
6 8 9
输出:
4

思路:

  • DFS + visited控制
  • flag 表示上一步是上坡还是下坡
 
params = [int(x) for x in input().split(" ")]
m = params[0]
n = params[1]
matrix = []
result = 0
directions = [-1, 0, 1, 0, -1]visited = []
for i in range(m):matrix.append([int(x) for x in input().split(" ")])visited.append([0 for i in range(n)])def dfs(x, y, step_count, flag) :global resultif(step_count>result):result = step_countvisited[x][y] = 1i=1while(True):if(i>=5):breakelse :xx = x + directions[i- 1]yy = y + directions[i]if (xx < 0 or yy < 0 or xx >= m or yy >= n or visited[xx][yy] == 1or matrix[xx][yy] == matrix[x][y] or ((flag and matrix[xx][yy] > matrix[x][y]) or (not flag and matrix[xx][yy] < matrix[x][y]))) :i+=1continuedfs(xx, yy, step_count + 1, not flag)i+=1visited[x][y] = 0for i in range(m):for j in range(n):dfs(i,j, 0, True)dfs(i,j, 0, False)
print(result)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 第128天:内网安全-横向移动IPCATSC 命令Impacket 套件CS 插件全自动
  • 代码随想录 day 30 贪心
  • RabbitMQ应用场景及特性
  • PointMC: Multi-instance Point Cloud Registration based on Maximal Cliques 论文解读
  • 经典算法KMP讲解,包含C++解法ACM模式
  • Python脚本实现USB自动复制文件
  • ADC模数转换在stm32上的应用
  • C语言基础题:硬币问题(C语言版)
  • 蚂蚁0511笔试-选择题
  • 9-springCloud集成nacos config
  • btslab靶场-通过xss获取他人cookie并利用
  • 【vue2+elementui】记录el-upload导入文件:只上传一个文件,且再次上传会覆盖上一个文件
  • 机械学习—零基础学习日志(高数18——无穷小与无穷大)
  • C++笔记---类和对象(中)
  • 【Matlab】快速傅里叶变换fft代码(单边谱)
  • Android Studio:GIT提交项目到远程仓库
  • Cookie 在前端中的实践
  • Elasticsearch 参考指南(升级前重新索引)
  • fetch 从初识到应用
  • JavaScript中的对象个人分享
  • uni-app项目数字滚动
  • WebSocket使用
  • Web标准制定过程
  • 反思总结然后整装待发
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 巧用 TypeScript (一)
  • 一份游戏开发学习路线
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​如何防止网络攻击?
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • ###项目技术发展史
  • #图像处理
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (LLM) 很笨
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .net core + vue 搭建前后端分离的框架
  • .NET Core 2.1路线图
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .Net Winform开发笔记(一)
  • .NET 动态调用WebService + WSE + UsernameToken
  • .net 简单实现MD5
  • .net 微服务 服务保护 自动重试 Polly
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .Net7 环境安装配置
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • @RequestBody与@RequestParam