想法题:
坑爹细节没想清楚就敲了 。。 整体的思路 在更新的时候出了问题。 10WA->AC 。。
战绩成渣了。。。 弱渣的艰辛奋斗史。,。。
题意是 :
给出 n个矩形,问每一个外边的那个矩形 的编号。 (0 -> n-1)
性质: 对于矩形 a,b ,若 a.x2 <= b.x1 ,b 矩形不会在 a矩形中 ,所以 所有的 x1 >b.x1的矩形 同样不会在a 矩形中。(单调形)。
性质2:若 a.x2 > b.x1 并且 a.y1< b.y1 < a.y2 或者 a.y1 < b.y2 < a.y2 时 ,b 矩形必定在 a 矩形中。
根据这两个性质 此问题就简化了不少。
根据这个性质,就可以对 x1 进行排序, 按 x1 的顺序依次把 y1 -y2 这个区间更新。
用线段树维护 y 值。 这样就把一个二维的问题,简化为一维的简单。
难点 : update 更新操作,删除矩形时,要把 此矩形的 外围矩形 的值更新上 。
也就是 把这个要删除的矩形的y区间更新为外围矩形的 id。而不是简单的更新为-1 或者 把整个外围矩形的 y 区间更新为id。
想法想不全 是硬伤。。。 考虑不全。 接下来的长沙赛区 我都不想打 代码了。。 就算数据结构题,也要让队友给我考虑一下的 模型 的操作 是否能达到预期的值。
#include
#include
#include