扫描线
LowestJN
强省弱OIer
展开
-
[BZOJ3189][Coci2011][扫描线][线段树]Slika
首先发现LOAD和与其对应的SAVE之间的操作是没用的,所以可以O(m)扫两遍出去SAVE和LOAD操作。对于这种矩形覆盖的问题,可以用扫面线加线段树处理。 开两棵线段树,用来记录(x+y)为奇数或偶数的时候被覆盖的情况,我们不妨扫描线扫x坐标,那么随着x+1,只要交换一下两颗线段树就可以了。对于线段树中的一个结点,开一个set记录一下覆盖了这个结点表示的区间的颜色以及时间,以时间为关键字(我直接原创 2017-04-17 19:54:26 · 586 阅读 · 0 评论 -
[BZOJ4636][扫描线+set]蒟蒻的数列
感觉用扫面线+set要比线段树好打一些#include <cstdio> #include <iostream> #include <algorithm> #include <set> #define N 40010using namespace std;typedef long long ll;multiset<ll,greater<ll> > S;int n,cnt; ll Ans; struc原创 2017-05-09 08:51:43 · 591 阅读 · 0 评论 -
[AtCoder ARC077 .E] [扫描线] [乱搞]guruguru
一次从a到b的变化可以看成一个(a,b)(a#include <cstdio> #include <iostream> #include <algorithm> #include <queue> #include <vector> #define fi first #define se secondusing namespace std;const int N=200010;typedef long原创 2017-07-02 17:39:01 · 886 阅读 · 0 评论 -
[几何 扫描线] LOJ#6260. 「CodePlus 2017 12 月赛」寄蒜几盒
直线很少,把交点算出来扫描线 多边形的数量是 O(n2)" role="presentation">O(n2)O(n2)O(n^2) 的,因为是平面图,所以顶点的总数也是 O(n2)" role="presentation">O(n2)O(n2)O(n^2) 的,搞一搞就好了 #include #include #include #include #include #define e原创 2018-02-06 13:33:23 · 477 阅读 · 0 评论 -
[主席树优化建图] LOJ#546. 「LibreOJ β Round #7」网格图
最简单的思路是离散化后 O(k2)O(k2)O(k^2) 搞 然而对于横着的朝向,极长的横着相连的格子的答案是相同的,竖着的同理 那么把极长的相连的格子也缩起来,用主席树优化建图,就可以 O(klogk)O(klogk)O(k\log k) 最短路了 #include <cstdio> #include <iostream> #include <algorit...原创 2018-02-25 21:17:16 · 591 阅读 · 0 评论