蓝桥杯 c/c++ 算法提高 最长滑雪道

2023-11-18

算法提高 最长滑雪道

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
  小袁非常喜欢滑雪, 因为滑雪很刺激。为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。 小袁想知道在某个区域中最长的一个滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。如下:
在这里插入图片描述

一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。当然25-24-23-…-3-2-1更长。事实上,这是最长的一条。
  你的任务就是找到最长的一条滑坡,并且将滑坡的长度输出。 滑坡的长度定义为经过点的个数,例如滑坡24-17-16-1的长度是4。
输入格式
  输入的第一行表示区域的行数R和列数C(1<=R, C<=10)。下面是R行,每行有C个整数,依次是每个点的高度h(0<= h <=10000)。
输出格式
  只有一行,为一个整数,即最长区域的长度。
样例输入
5 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
样例输出
25


经典bfs问题:定义两个数组dx,dy控制方向。好在本题只会往比自己低的地方走,所以不用定义vis数组。注意起始长度为1,而不是0

code:

#include<iostream>
using namespace std;
int a[100][100];
int dx[4] = { 1,0,-1,0 };
int dy[4] = { 0,1,0,-1 };
int r, c, cnt = 0,i,j;
void dfs(int a[][100], int i, int j, int sum)
{
	if (sum > cnt)
		cnt = sum;

	int t, x, y;
	for (t = 0; t < 4; t++)
	{
		x = i + dx[t];
		y = j + dy[t];
		if (x >= 0 && x < r && y>=0 && y < c && a[x][y] < a[i][j])
		{
			sum++;
			dfs(a, x, y, sum);
			sum--;
		}
	}
}
int main()
{
	cin >> r >> c;
	for (i = 0; i < r; i++)
		for (j = 0; j < c; j++)
			cin >> a[i][j];
	for (i = 0; i < r; i++)
		for (j = 0; j < c; j++)
			dfs(a, i, j, 1);

	cout << cnt << endl;
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯 c/c++ 算法提高 最长滑雪道 的相关文章

  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • 为什么libc++的shared_ptr实现使用完整内存屏障而不是宽松内存屏障?

    在boost的实现中shared ptr 它用放松内存排序以增加其引用计数 https github com boostorg smart ptr blob master include boost smart ptr detail sp
  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • asp.net 文本框文本模式数字,仅允许数字

    我只是想知道 ASP NET 中是否有一种方法只允许文本框中的数字textmode number 当我使用这个时
  • 使用具有现有访问令牌的 Google API .NET 客户端

    用例如下 移动应用程序正在通过 Google 对用户进行身份验证 并且在某些时候 我们需要将用户的视频发布到他的 YouTube 帐户 出于实际原因 实际发布应该由后端完成 已经存储在那里的大文件 由于用户已经通过应用程序的身份验证 因此应
  • 向 ExpandoObject 添加方法时,“关键字 'this' 在静态属性、静态方法或静态字段初始值设定项中无效”

    我尝试向 ExpandoObject 添加一个动态方法 该方法将返回属性 动态添加 给它 但它总是给我错误 我在这里做错了什么吗 using System using System Collections Generic using Sys
  • 如何创建可以像 UserControl 一样编辑的 TabPage 子类?

    我想创建一个包含一些控件的 TabPage 子类 并且我想通过设计器来控制这些控件的布局和属性 但是 如果我在设计器中打开子类 我将无法像在 UserControl 上那样定位它们 我不想创建一个带有 UserControl 实例的 Tab
  • 为什么要序列化对象需要 Serialized 属性

    根据我的理解 SerializedAttribute 不提供编译时检查 因为它都是在运行时完成的 如果是这样 那么为什么需要将类标记为可序列化呢 难道序列化器不能尝试序列化一个对象然后失败吗 这不就是它现在所做的吗 当某些东西被标记时 它会
  • Clang 编译器 (x86):80 位长双精度

    我正在尝试在 x86 Windows 平台上使用本机 80 位长双精度 海湾合作委员会选项 mlong double 80 https gcc gnu org onlinedocs gcc x86 Options html似乎不适用于 cl
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • 如何识别 WPF 文本框中的 ValidationError 工具提示位置

    我添加了一个箭头来指示工具提示中的文本框 当文本框远离屏幕边缘时 这非常有效 但是当它靠近屏幕边缘时 工具提示位置发生变化 箭头显示在左侧 Here is the Image Correct as expected since TextBo
  • C 语言中 =+(等于加)是什么意思?

    我碰到 与标准相反 今天在一些 C 代码中 我不太确定这里发生了什么 我在文档中也找不到它 In ancientC 版本 相当于 它的残余物与最早的恐龙骨头一起被发现 例如 B 引入了广义赋值运算符 使用x y to add y to x
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 生产代码中的 LRU 实现

    我有一些 C 代码 需要使用 LRU 技术实现缓存替换 目前我知道两种实现LRU缓存替换的方法 每次访问缓存数据时使用时间戳 最后比较替换时的时间戳 使用缓存项的堆栈 如果最近访问过它们 则将它们移动到顶部 因此最后底部将包含 LRU 候选
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • WinRT 定时注销

    我正在开发一个 WinRT 应用程序 要求之一是应用程序应具有 定时注销 功能 这意味着在任何屏幕上 如果应用程序空闲了 10 分钟 应用程序应该注销并导航回主屏幕 显然 执行此操作的强力方法是在每个页面的每个网格上连接指针按下事件 并在触
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • Fisco Bcos区块链五(WeBase结点前置服务)

    文章目录 区块链开荒 技术文档 https webasedoc readthedocs io zh CN latest docs WeBASE Front install html 三 WeBase节点前置服务 1 前提条件 2 拉取代码
  • AIGC驱动产品开发创新,改变你所知的一切!

    你是否想过 3000年后的饮料是什么味道 9月12日 可口可乐全球创意平台 乐创无界 再度推出全新限定产品 首款联合人工智能 AI 打造的无糖可口可乐 未来3000年 从口味研发到包装设计都体现了AI的深度参与打造 Y3000与AI共创这一
  • 实战: 跨年烟花代码的实现(附源码)

    目录 前言 一 pandas是什么 二 代码结构 1 介绍主html代码 2 js文件介绍 GameCanvas js script js 运行效果 前言 本文章将介绍跨年烟花代码的实现以及源代码 提示 以下是本篇文章正文内容 一 pand
  • 关于security权限的坑

    遇到了一个spring security的坑 分享给大家 首先介绍一下项目 spring boot 整合security 配合做权限与认证 如果数据库权限是ROLE USER 比如 那么在Security配置文件里 权限必须写出USER 也
  • 如何在vue 中使用 sass

    传送门
  • python中协程实现的本质以及两个封装协程模块greenle、gevent

    协程 协程 又称微线程 纤程 英文名Coroutine 协程是啥 协程是python个中另外一种实现多任务的方式 只不过比线程更小占用更小执行单元 理解为需要的资源 为啥说它是一个执行单元 因为它自带CPU上下文 这样只要在合适的时机 我们
  • Fun论设计模式之2:代理模式(Proxy Pattern)

    今天学习到了一个新的设计模式 代理模式 介绍借鉴了runoob的 意图 为其他对象提供一种代理以控制对这个对象的访问 主要解决 在直接访问对象时带来的问题 比如说 要访问的对象在远程的机器上 在面向对象系统中 有些对象由于某些原因 比如对象
  • LeetCode刷题-9

    数组 119 杨辉三角 II 题目描述 题目样例 Java方法 线性递推 思路及算法 代码 复杂度 题目描述 给定一个非负索引 rowIndex 返回 杨辉三角 的第 rowIndex 行 在 杨辉三角 中 每个数是它左上方和右上方的数的和
  • 训练后的网络输出为固定值

    缘起 之前训练好的网络 但是为了硬件移植 其中某些操作需要删除 那么简单 替换一些硬件不支持的操作 重新训练一下就好了 毕竟训练集 数据导入方式 训练代码 测试代码之前都验证了没有什么问题 但是问题来了 简单的训练一次 居然出现了输出结果成
  • jquery显示和隐藏 切换

  • 华硕笔记本没有无线服务器,华硕电脑搜不到wifi怎么回事

    华硕电脑搜不到wifi怎么回事 可能还有些网友不太了解 那么下面就由学习啦小编给你们介绍华硕电脑搜不到wifi的原因及解决方法吧 希望能帮到大家哦 华硕电脑搜不到wifi的解决分析一 1 首先点击桌面右下角的无线网络图标 打开网络和共享中心
  • shell 命令之wc

    wc命令很简单 就是统计指定文件中的字节数 字数 行数 并将统计结果显示输出 其命令及参数如下 wc lcmw file c 统计字节数 l 统计行数 m 统计字符数 如果本地不支持多字节字符 则和 c一样的效果 w 统计字数 一个字被定义
  • python 格式化

    一 格式化方式 1 使用 进行格式化 2 使用f str 进行格式化 3 使用str format进行格式化 二 格式化的使用 1 使用 进行格式化 定义以下变量 name Tom age 17 weight 58 9871 book 10
  • python装饰器计算函数运行时间

    import time from functools import wraps import random def fn timer function wraps function def function timer args kwarg
  • Zookeeper和Nacos的区别

    Zookeeper和Nacos的区别 在分布式系统中 注册中心充当着重要角色 是服务发现 客户端负载均衡中不可缺少的一员 注册中心除了能够实现基本的功能外 他的稳定性 可用性和健壮性对整个分布式系统的流畅运行影响重大 zookeeper和n
  • 如何写论文

    维生素C吃多了会上火 个人CSDN博文目录 AI论文精度 这篇博客讲解的是如何写文章 写论文异曲同工 参考书籍The Craft of Research 参考视频跟读者建立联系 研究的艺术 一 目录 书本目录 1 跟读者建立联系 如何权衡项
  • OpenCV——多分辨率LBP的计算方法

    目录 一 算法原理 1 原理概述 2 参考文献 二 代码实现 三 结果展示 一 算法原理 1 原理概述 基本LBP算子虽然在早期的实验中取得了一系列成果 但是应用于不同领域的具体问题时 该算子的处理结果并不能达到预期的效果 因此 很多学者对
  • 不同网段共享文件服务器,不同网段ip 如何设置局域网共享?

    具体操作如下 执行 开始 I 控制面板 命令 在打开的窗口中双击 网络和丨nternet连接 选项 打开 网络连接 窗口 在窗口左边的 网络任务 栏中选择 更改此连接设置 选项 弹出 本地连接属性 对话框 单击 安装 按钮 在win7弹出的
  • .NET 6 ‘Unable to configure HTTPS endpoint...

    Mac M1 NET 6 Exception has occurred CLR System InvalidOperationException System InvalidOperationException 类型的未经处理的异常在 Sy
  • 蓝桥杯 c/c++ 算法提高 最长滑雪道

    算法提高 最长滑雪道 资源限制 时间限制 1 0s 内存限制 256 0MB 问题描述 小袁非常喜欢滑雪 因为滑雪很刺激 为了获得速度 滑的区域必须向下倾斜 而且当你滑到坡底 你不得不再次走上坡或者等待升降机来载你 小袁想知道在某个区域中最