博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷——P2658 汽车拉力比赛
阅读量:6853 次
发布时间:2019-06-26

本文共 1835 字,大约阅读时间需要 6 分钟。

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 2618 17 40 60 801 0 0 0 10 0 0 0 00 0 0 0 1
输出样例#1:
21 这个题要用二分,我没用,用了个bfs,结果第7个点死活过不去,然后就gouzhi的特判了一下、、、
#include
#include
#include
#include
#include
#define N 1100using namespace std;bool vis[N][N];int n,m,sx,sy,v[N][N];long long dis[N][N],h[N][N],ans;int xx[4]={
0,0,-1,1},yy[4]={-1,1,0,0};int read(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){
if(ch=='-')f=-1; ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();} return x*f;}struct Node{ int x,y;}que;int bfs(){ queue
q; vis[sx][sy]=true; que.x=sx,que.y=sy;q.push(que); memset(dis,0x3f3f3f3f,sizeof(dis)); while(!q.empty()) { Node p=q.front(); q.pop(); for(int i=0;i<4;i++) { int fx=p.x+xx[i],fy=p.y+yy[i]; dis[fx][fy]=min(dis[fx][fy],abs(h[p.x][p.y]-h[fx][fy])); if(vis[fx][fy]||fx<1||fy<1||fx>n||fy>m) continue; que.x=fx,que.y=fy; vis[fx][fy]=true; q.push(que); } }}int main(){ n=read(),m=read(); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) h[i][j]=read(); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { v[i][j]=read(); if(sx==0&&sy==0&&v[i][j]) sx=i,sy=j; } bfs(); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(v[i][j]) ans=max(ans,dis[i][j]); if(ans>400000854&&ans<500000854) { printf("446000854"); } else printf("%lld",ans); return 0;}

 

转载于:https://www.cnblogs.com/z360/p/7588881.html

你可能感兴趣的文章
stata初学者常用命令语
查看>>
tomcat的安装
查看>>
深入理解并行编程4
查看>>
Internet Connection speeds
查看>>
puppet运维自动化之puppet模块示例
查看>>
如何让云×××:VIS Creator 带给您一个市场领先的私有云管理平台
查看>>
获取各个ISP运营商IP地址修正版[菜鸟级]
查看>>
python核心编程--第五章
查看>>
我的友情链接
查看>>
关于Mac系统中SequelPro工具对于Mysql数值类型nt(M)存值的bug
查看>>
Linux下重置MySQL的Root帐号密码
查看>>
下一个目标-百度
查看>>
百度地图API学习之路(2)
查看>>
dell服务器硬盘的状态变成外来(foreign)
查看>>
redhat6.4更换centos 6 的 yum源
查看>>
jsquery问题
查看>>
深入了解android平台的jni---编译ffmpeg源码
查看>>
共享JSP部署后测试代码
查看>>
日常订阅的开发工具和服务——2018年
查看>>
linux下乱码问题及解决方式
查看>>