[USACO2005][POJ3044]City Skyline(贪心+单调栈)

题目:http://poj.org/problem?id=3044

题意:以坐标的形式给出一张图,表示一些楼房的正视图,求出楼房的最少个数。

分析:和小学常做的立方体问题很像,很容易想到一个贪心方法,那就是尽量把矮的楼房放在高的楼房的前面,即连续的等高的一些"X"我们把它视为一座楼房。

        具体的做法可以维护一个Y坐标单增的栈,从左到右读入每个坐标,将Y坐标与栈顶坐标比较:

      若Y==栈顶坐标,那么接着读下面一个坐标

      若Y>栈顶坐标,那么把Y坐标加入栈成为新的栈顶

      若Y<栈顶坐标,那么弹出栈顶坐标,且ans+1表示前面一段以栈顶元素为共同高度的X作为一个楼房

总结:这题本身不是什么问题,不过此问题也可以看成给你一张图,让你用尽量少的矩形覆盖所有'X'且不能覆盖'.',所以说类似的矩形覆盖问题也可以这么贪心。

转载于:https://www.cnblogs.com/wmrv587/p/3700425.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值