牛客周赛51:小红走矩阵(二分+bfs)

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

给定n×nn \times nn×n的矩阵,矩阵中的每个元素都是正整数,小红能当前位于左上角(1,1)(1,1)(1,1),每次可以从 (x,y)(x, y)(x,y) 走到 (x+1,y)(x+1, y)(x+1,y)、(x,y+1)(x, y+1)(x,y+1)、(x−1,y)(x-1, y)(x−1,y)、(x,y−1)(x, y-1)(x,y−1),但不能走出矩阵。小红希望找到一条到右下角(n,n)(n,n)(n,n)的路径,定义路径权值为路径上经过的每个点的最大值,求所有路径中的最小路径权值。

输入描述:

第一行一个整数nnn,表示矩阵的大小。
接下来nnn行,每行nnn个整数,表示矩阵中的元素aija_{ij}aij​。
1≤n≤5001 \leq n \leq 5001≤n≤500
1≤aij≤1091 \leq a_{ij} \leq 10^91≤aij​≤109。

输出描述:

输出一个整数,表示所有路径中的最小路径权值。

示例1

输入

复制3 3 2 1 6 5 4 9 8 7

3
3 2 1
6 5 4
9 8 7

输出

复制7

7

说明

先一直往右走,再一直往下走,路径上的最大值为7。

做法

二分。当时想到了要用二分,但又没往那方面深想。。。没想到怎么bfs,想直接用bfs写的。最后去搞dp做法,也没弄出来,好像不能dp?

#include<bits/stdc++.h>
using namespace std;
int n;
long long a[510][510];
int vis[510][510];
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
struct ty{int x,y;
};
queue<ty> q;
int isleft(long long x){memset(vis,0,sizeof(vis));q=queue<ty> ();if(a[1][1]>x) return 1;vis[1][1]=1;q.push({1,1});while(!q.empty()){ty tmp=q.front();q.pop();for(int i=0;i<4;i++){int xx=tmp.x+dx[i];int yy=tmp.y+dy[i];if(vis[xx][yy]) continue;if(xx>n||yy>n||xx<1||yy<1) continue;if(a[xx][yy]>x) continue;if(xx==n&&yy==n) return 0;q.push({xx,yy});vis[xx][yy]=1;}}return 1;
}
int main(){cin>>n;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){scanf("%lld",&a[i][j]);}}long long l=0,r=1e9+1;while(l+1<r){long long mid=l+(r-l)/2;if(isleft(mid)) l=mid;else r=mid;}cout<<r;
}

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

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

相关文章

为了实现接口缓存,专门写了个缓存库 f-cache-memory

问题起因 起因是某次发版之后&#xff0c;服务器接口压力过大&#xff0c;当场宕机&#xff0c;排查之后发现有个接口在首页被调十来次&#xff08;六七年的老项目了&#xff0c;都是泪呀&#xff09;&#xff0c;后端反馈这个接口的sql很复杂&#xff0c;很耗性能&#xff0c…

如何根据同一行的ID利用R语言对值进行求和

需求&#xff1a;将属于同一分组的对应的值进行求和或者求平均值 #设置工作目录 > getwd() [1] "C:/Users/86150/Documents" > setwd("C:/Users/86150/Desktop/AA2024/RUF") > list.files() #读取文件 >install.packages("readxl")…

基于NeRF的路面重建算法——RoME / EMIE-MAP / RoGS

基于NeRF的路面重建算法——RoME / EMIE-MAP / RoGS 1. RoMe1.1 Mesh Initialization / Waypoint Sampling1.2 Optimization1.3 Experiments 2. EMIE-MAP2.1 Road Surface Representation based on Explicit mesh and Implicit Encoding2.2 Optimizing Strategies2.3 Experimen…

python报错RuntimeError: Numpy is not available

–> 141 audio torch.from_numpy(audio) 143 if device is not None: 144 audio audio.to(device) RuntimeError: Numpy is not available 使用python3.9和torch时&#xff0c;自动安装了Numpy2.0&#xff0c;一直报错&#xff0c; 解决方法&#xff1a;pip install nump…

如何在 Linux 中解压 ZIP 文件

ZIP 是一种常用的压缩文件格式&#xff0c;用于存储和传输多个文件。在 Linux 系统中&#xff0c;解压 ZIP 文件非常简单。 使用 unzip 命令 unzip 是一个专用于解压 ZIP 文件的命令行工具。要使用它&#xff0c;请打开终端并输入以下命令&#xff1a; 例如&#xff0c;要解…

SpringBoot整合ElasticSearch的elasticsearch-java出现jakarta.json.spi.JsonProvider报错问题

一、原因 报错内容如下 org.springframework.beans.factory.BeanCreationException: Error creating bean with name esClient defined in class path resource [com/elasticsearch/config/ElasticSearchConfig.class]: Bean instantiation via factory method failed; nes…

springboot怎么使用rides 缓存方法的返回值 完整例子

好的,下面是一个使用Spring Boot和Redis缓存方法返回值的完整示例: 添加依赖:在pom.xml中添加Spring Boot Redis依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> <…

在 CI/CD Pipeline 中实施持续测试的最佳实践!

随着软件开发周期的不断加快&#xff0c;持续集成&#xff08;CI&#xff09;和持续交付/部署&#xff08;CD&#xff09;已经成为现代软件开发的重要组成部分。在这一过程中&#xff0c;持续测试的实施对于确保代码质量、提高发布效率至关重要。本文将详细介绍在CI/CD流水线中…

JVM:JavaAgent技术

文章目录 一、Java工具的介绍二、Java Agent技术1、介绍2、静态加载模式3、动态加载模式 三、搭建java agent静态加载模式环境1、创建maven项目2、编写类和premain方法3、编写MANIFEST.MF文件4、使用maven-assembly-plugin进行打包5、创建Spring Boot应用 一、Java工具的介绍 …

有关css的题目

css样式来源有哪些&#xff1f; 内联样式&#xff1a; <a style"color: red"> </a> 内部样式&#xff1a;<style></style> 外部样式&#xff1a;写在独立的 .css文件中的 浏览器的默认样式 display有哪些属性 none - 不展示 block - 块类型…

基于深度学习的医疗数据分析

基于深度学习的医疗数据分析是将深度学习技术应用于医疗数据处理和分析&#xff0c;以提高疾病诊断、治疗规划、患者监护等方面的效率和准确性。这一领域涵盖了广泛的应用&#xff0c;包括影像分析、电子健康记录&#xff08;EHR&#xff09;处理、基因组数据分析等。以下是对这…

mac数据恢复软件哪个好用 macbook数据恢复专业软件下载 mac数据恢复概率大吗 苹果电脑数据恢复软件哪个好

作为办公的必需品&#xff0c;mac的普及率虽然比不上其他品牌的windows操作系统&#xff0c;但是使用人群也一致居高不下&#xff0c;因此&#xff0c;mac数据丢失的问题也时常发生。当数据丢失以后&#xff0c;如何找回数据成了一大难题。 一、Mac数据恢复概率大吗 一般情况下…

配置mysql8.0.21版本docker-compose启动容器

1. 总览 2 docker-compose.xml配置 version: 3 services:mysql:image: 192.168.188.131:8000/mysqlrestart: alwaysvolumes:- ./data:/var/lib/mysql- ./my.cnf:/etc/mysql/my.cnf- ./mysql-files:/var/lib/mysql-files- ./log/mysql:/var/log/mysqlenvironment:MYSQL_ROOT_PA…

掌握Perl的魔法:深入探索钩子(Hook)机制

掌握Perl的魔法&#xff1a;深入探索钩子&#xff08;Hook&#xff09;机制 在Perl编程语言中&#xff0c;钩子&#xff08;Hook&#xff09;是一种特殊的变量或函数&#xff0c;它们在特定的操作发生时自动触发。钩子可以被视为一种拦截器&#xff0c;允许程序员在程序执行的…

python中使用openpyxl库写一个简单的表格

如果你只需要写一个简单的表格并保存到Excel文件中&#xff0c;那么openpyxl或pandas都是很好的选择。这两个库都支持创建和保存Excel文件&#xff0c;并且使用起来相对简单。 以下是使用openpyxl库创建一个简单表格并保存到Excel文件的示例&#xff1a; from openpyxl impor…

huawei USG6001v1学习----NAT和智能选路

目录 1.NAT的分类 2.智能选路 1.就近选路 2.策略路由 3.智能选路 NAT:&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09; 指网络地址转换&#xff0c;1994年提出的。NAT是用于在本地网络中使用私有地址&#xff0c;在连接互联网时转而使用全局…

Skip List:平衡搜索效率与数据结构复杂性

在计算机科学中&#xff0c;跳表&#xff08;Skip List&#xff09;是一种概率型数据结构&#xff0c;它允许快速地在有序列表中进行搜索、插入和删除操作。跳表由William Pugh在1990年提出&#xff0c;它结合了链表的简单性和平衡树的高效性&#xff0c;是一种非常实用的数据结…

【MySQL】一些业务场景常见的查询,比如实现多表字段同步,递归查询等

目录 快速加注释多表关联查询更新多个字段循环查询子级方法1&#xff1a;递归查询方法2&#xff1a;循环查询 快速加注释 使用ALTER TABLE语句可以修改表结构&#xff0c;包括添加注释。以下是添加注释的语法&#xff1a; ALTER TABLE 表名 MODIFY COLUMN 列名 列类型 COMMEN…

【数据结构初阶】顺序表三道经典算法题(详解+图例)

Hello&#xff01;很高兴又见到你了~~~ 看看今天要学点什么来充实大脑吧—— 目录 1、移除元素 【思路图解】 【总结】 2、删除有序数组中的重复项 【思路图解】 【总结】 3、合并两个有序数组 【思路图解】 【总结】 至此结束&#xff0c;Show Time&#xff01; 1、…

TCP/IP协议,以及对等网络通信原理!

TCP/IP模型协议分层 应用层&#xff1a; HTTP&#xff1a;超文本传输协议&#xff08;网站访问WEB&#xff09;&#xff08;Apache、nginx&#xff09;(IIS) FTP&#xff1a;文件传输协议&#xff08;网络文件传输&#xff09; TFTP&#xff1a;简单文件传输协议&#xff0…