P2658 汽车拉力比赛
题目描述
博艾市将要举行一场汽车拉力比赛。
赛场凹凸不平,所以被描述为M*N的网格来表示海拔高度(1≤ M,N ≤500),每个单元格的海拔范围在0到10^9之间。
其中一些单元格被定义为路标。组织者希望给整个路线指定一个难度系数D,这样参赛选手从任一路标到达别的路标所经过的路径上相邻单元格的海拔高度差不会大于D。也就是说这个难度系数D指的是保证所有路标相互可达的最小值。任一单元格和其东西南北四个方向上的单元格都是相邻的。
输入输出格式
输入格式:
第一行两个整数M和N。第2行到第M+1行,每行N个整数描述海拔高度。第2+M行到第1+2M
行,每行N个整数,每个数非0即1,1表示该单元格是一个路标。
输出格式:
一个整数,即赛道的难度系数D。
输入输出样例
输入样例#1:
3 5 20 21 18 99 5 19 22 20 16 26 18 17 40 60 80 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1
输出样例#1:
2
我必须要说说今天这个错误,我为了处理边界,给了周边的单元一个极小值,但负小了,所以就抄了边界。
!!!!注意
#include<iostream> #include<cstdio> #include<string.h> #include<algorithm> #include<math.h> using namespace std; int n,m,L,R,mid; long long h[600][600]; int X,Y,cnt; bool map[600][600]; int zh[9000009][2],vis[600][600]; int dx[4]={0,-1,1,0},dy[4]={1,0,0,-1}; bool check(int d) { memset(vis,0,sizeof(vis)); int l=0,r=1,x,y,xx,yy,tot=cnt-1; l=0,r=1; zh[r][0]=X,zh[r][1]=Y;vis[X][Y]=1; while(l < r) { x=zh[++l][0],y=zh[l][1]; for(int j=0;j<4;j++) { if(tot==0) return 1; xx=x+dx[j],yy=y+dy[j]; if(abs(h[xx][yy]-h[x][y]) <=d && (!vis[xx][yy])&&x>=1&&x<=m&&y>=1&&y<=n) { zh[++r][0]=xx;zh[r][1]=yy; vis[xx][yy]=1; if(map[xx][yy]) tot--; } } } return 0; } int main() { scanf("%d%d",&m,&n);long long mi=99999999,ma=0; for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) { scanf("%lld",&h[i][j]); mi=min(mi,h[i][j]); ma=max(ma,h[i][j]); } for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) { scanf("%d",&map[i][j]); if(map[i][j]) X=i,Y=j,cnt++; } for(int i=0;i<=m+1;i++) h[i][0]=h[i][n+1]=-999999999; for(int j=0;j<=n+1;j++) h[0][j]=h[m+1][j]=-999999999; L=0,R=ma-mi;//+100 while(L+2<R) { mid=(L+R)/2; if(check(mid)) R=mid; else L=mid; } for(L;L<=R;L++) if(check(L)){ cout<<L; return 0; } cout<<L; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App