C++滑雪场的高度差——一道分治与广搜的结合 提高分治与搜索

这是一篇关于利用分治和广度优先搜索(BFS)解决滑雪场高度差问题的文章。作者通过改编校内模拟赛题目,探讨如何在保证关键网格连通的情况下,找到最小的相邻网格高度差参数D。文章阐述了思路,即通过二分查找优化搜索过程,降低时间复杂度,并提供了代码实现。
摘要由CSDN通过智能技术生成

目录

前言

题目

思路

代码

后记


前言

此题是校内模拟赛自己改编的,想看题解的可以走了。所以此题可以用来对分治和搜索的提高,大家大致看看题目与我的思路就好。


题目

题目描述

滑雪场可以看成M x N的网格状山地(1 <= M,N <= 500),每个网格是一个近似的平面,具有水平高度值在0 .. 1,000,000,000米的范围内。

某些网格被指定为关键网格。当两个相邻网格之间的高度差的绝对值不超过某个参数D时,就可以相互到达。相邻关系是指某个格子的东、西、南、北的格子。

显然,当D不断减小时,原本可以相互到达的相邻格子就不能到达了。

滑雪赛的组委会想知道,为了保证各个关键网格之间彼此连通,最小的D是多少?

 

输入

 第1行:2个整数M和N

接下来M行,每行N个整数,表示各网格的高度

接下来M行,每行N个0或者1,1表示关键网格

输出

 第1行:1个整数,表示最小的D

样例输入

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

样例输出

2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值