UOJ242 破坏蛋糕 计算几何、差分

传送门


把第\(n+1\)条直线作为\(y\)轴,那么对于\(y\)轴被分开的\(n+1\)段,一段在有限区域内的条件是它的左边和右边的块都是有限的。

对于左边和右边做法相同,我们只考虑右边。注意到\(y\)轴的某一段的右边的块有限,必须要满足这一段上方的一条直线和这一段下方的一条直线在\(y\)轴右侧存在交点,即这条直线的上方存在一条直线、下方存在一条直线,满足上方的直线的斜率比下方的直线的斜率要小。

不妨按照所有直线与\(y\)轴的交点将直线排序,按照交点从下往上加入直线的时候维护一个斜率递增的栈,每一次插入一条直线时在这个栈上二分得到截距最小的与当前直线在\(y\)轴右侧有交点的直线,那么这两条直线包含的\(y\)轴的若干段在右侧都是有限的。不难发现每一次是一段区间赋值,使用差分的方式维护即可。

代码

转载于:https://www.cnblogs.com/Itst/p/11165074.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值