刷题数:6 最近几天学了线段树,学得很仔细。里面的代码都基本会敲,算法原理也都懂了,扫描线也懂了。 线段树就是每个节点代表一个区间,然后左右节点除2缩小,数组下标乘2变大。用来对序列进行维护,支持查询修改。 而扫描线我在第三篇博客里有提起我对这个算法的理解。 算法竞赛进阶指南210~213页。 线段 Read More
posted @ 2019-08-17 16:10 Ldler Views(83) Comments(0) Diggs(0) Edit
题目链接 题意:已知每个星星的坐标和亮度,求用一个宽w,高h的矩形能圈住的星星的亮度总和最大是多少。 思路:我们把每个星星置为w,h矩形的左下角,这样围才是最多的情况。然后将每个这样的搞出来并把其矩形赋权为其亮度,可以发现当两个矩形重合的地方就可以用亮度加起来 表示,因为在那个地方做宽w高h的矩形两 Read More
posted @ 2019-08-17 16:01 Ldler Views(198) Comments(0) Diggs(0) Edit
题目链接 题意:给n个矩形到一个平面上,求他们的总面积。 思路:将他们的x坐标从小到大排序,然后根据对于当前x坐标而言他们的y坐标区间进行相应的维护某些变化,这种解题思路就是扫描线。对于这题,我们要维护的是y区间的覆盖情况。 然后用覆盖的总长度去乘以当前两个x之间的距离,再全部加起来就是答案。对于如 Read More
posted @ 2019-08-17 15:40 Ldler Views(163) Comments(0) Diggs(0) Edit
题目链接 题意: 给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一: 1、“1 x y”,查询区间 [x,y] 中的最大连续子段和,即 MAXx≤l≤r≤y{∑r,i=l A[i]}。 2、“2 x y”,把 A[x] 改成 y。 对于每个查询指令,输出一个整数表示答案。 思路: 用线 Read More
posted @ 2019-08-17 15:24 Ldler Views(196) Comments(0) Diggs(0) Edit