luogu1514 引水入城(宽搜+DP)

该博客介绍了如何使用宽度优先搜索(宽搜)和动态规划(DP)解决一个关于地图中水引入城市的最优化问题。在n*m的地图上,起点在第一行,终点在最后一行,每格有高度限制,目标是最小化入口数量以确保所有出口都能被连通。博主分享了解题思路,包括宽搜寻找入口可达的出口范围,处理特殊情况,以及利用DP进行区间覆盖的优化。最后提供了详细的代码实现,强调了代码中处理的细节。
摘要由CSDN通过智能技术生成

题目连接

#同类的题目还有这些#

综合应用的好题:代码复杂度也比较符合t2的要求

题目大意:

    1 n*m的地图,第一行是入口(水),第n行是出口(城市),每格都有个高度值,只能从高到低移动;

    2 求用最少的入口,把所有的出口都联通。

解题思路:%HW同学,讲解细致!

    1 通过宽搜,把每个入口能到达的出口找出来,记录入口的左右边界(l,r);

        1.1 思考难点:如果一个入口不能到达连贯的区间的出口,那么中间的出口就永远无法到达;

        1.2 如果地图只有一行(出口也是入口),要注意特判。

    2 宽搜的时候,用v数组记录出口的到达情况,全部宽搜结束后判断,如果有出口未被到达,游戏结束0。

    3 如果2能过了,就做DP,求用最小的区间实现完全覆盖。

上代码:ps很多细节处理,要认真阅读代码注解

#include<cstdio>
#include<cstring>
#in
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值