2019多校第六场 HDU6638 Snowy Smile(区间最大子段和)

该博客介绍了如何解决一个数学问题,即在平面直角坐标系中,给定n个点及其权值,找到一个矩形以最大化矩形内和边上的点权值之和。博主提出了一种暴力线扫描的解决方案,首先对点按y坐标排序,然后枚举矩形的下边界,使用线段树维护区间最大子段和,最终得到的时间复杂度为O(n²logn)。

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

链接HDU6638 Snowy Smile

题意:

给出平面直角坐标系上 n ( ≤ 2000 ) n(\le 2000) n(2000)个点 ( x i , y i ) (x_i,y_i) (xi,yi),每个点都有一个权值 w i    ( − 1 0 9 ≤ x i , y i , w i ≤ 1 0 9 ) w_i\;(-10^9\le x_i,y_i,w_i\le10^9) wi(109xi,yi,wi109),选取一个矩形(矩形边分别平行于 x , y x,y x,y轴),使得矩形内及边上所有点的权值之和最大,问最大的权值之和为多少?(允许矩形内及边上不包括任何点)



分析:

因为 n n n的最大只有 2000 2000 2000,所以可以暴力线扫描,先把点全部按 y y y从小到大排序;

我们可以枚举矩形下边界,即 y : y m i n → y m a x y:y_{min}\rarr y_{max} y:yminy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值