kuangbin专题七 线段树【从入门到熟练】【13题】
【POJ 2528 Mayor's posters】 每个海报会覆盖一段连续的区间,所以这是个区间覆盖问题,可以用线段树。 但硬上nlogm虽然不会tle,但会mle,所以要离散化。 在[1,10000000]的这个瓷砖里,只有10000级别的修改,我们可以想象出整个区间可以被划分为多个被cover情况【一致】的小区间。那什么样的小区间被cover情况一致呢,所有端点排序后相邻端点构成的区间被cover情况是一致的,为什么呢?因为每次的覆盖都必定是两两端点间的。 这样的话每次cover就是cover这个海报start所代表的区间到end所代表的区间。 【注意要从后往前贴海报】 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<queue> #include<string> #include<stack> #include<map> #include<iomanip> #include<algorithm> #include<vector> #define INF 2e9 #define MAXN 20010 #define maxnode 100000 #define ll long long #define lowbit(x) (x&(-x)) int dx[4]={0,0