191003数据结构---金华

1
讨论y的大小,若大\sqrt{m}预处理,小于就暴力做。复杂度\(O(N\sqrt{M})\)

2
考虑操作倒序,对于序列维护并查集,代表它下一个未被染色的点,暴力维护。
复杂度\(O(NlogN)\)

3
考虑把障碍物全加入后再逐个删除,易得正方形边长不降。枚举边长,维护一个点向左向右最多能走几格,在一个障碍被去掉后暴力修改一行。检验一个正方形是否合法只要用单调队列维护一下即可。

4
考虑分治,每次选择矩形较长的边从中间剖开,对于线上的每一个点做一遍到其他每一个点的最短路。这样显然所有询问点对经过这条线的最短路都能算出。因为每次都是剖的长边,所以剩下矩形的较长边的边长一定小于\sqrt{S},S为原矩形的面积。故复杂度\(O(S\sqrt{S}logS+qlogS)\)

5
分治,每次把点分成两半,现在就只要考虑经过中线的点了。设距离为h,那就只有中线左右距离为h的点有用。对于每个这样的点,........每次至多只有7个点能与它产生贡献。复杂度\(O(NlogN)\)

6
选一条边切开,计算经过这两个点的最短路,分治下去即可。
复杂度\(O(Nlog_{1.5}N)\) 证明???

7

猜你喜欢

转载自www.cnblogs.com/zxynothing/p/11619234.html