bzoj1007: [HNOI2008]水平可见直线

本文针对一道涉及直线覆盖的问题进行了详细解析。首先介绍了题目的背景,随后提出了通过按斜率排序并利用栈结构来解决该问题的方法。对于每条直线,若其与栈顶直线的交点位于前一个点左侧,则移除栈顶直线,确保最终覆盖效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

翘课翘了一下午,什么都没做
今天发现在做某道题的时候发现在不会做
然后发现有人同1007
于是回去看。。发现我做过但是忘了

题解

先按斜率从小到大排序,再将斜率最小的两条直线入栈。
对于每条直线,如果其与栈顶直线的交点在上一个点的左边
就将栈顶直线出栈
我们现在来尝试理解一下
对于两条直线l1,l2
前者的斜率大于后者
那么l1漏出来的地方肯定是在交点右边的,被覆盖的是在交点左边的
然后如果你现在假如一条直线l3,如果他的交点在这个交点的左边,那么就意味着他右边也被覆盖了。那么他就看不见了

以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值