线段树
罗旅洲
Hello World!
展开
-
【线段树】矩形面积并
题目描述给出n个矩形的左下角和右上角的坐标,求矩形面积的并。矩形面积并指的是被矩形覆盖到的面积和,重叠部分仅算一次。输入多组输入,每组首先一个整数 n,代表矩形的数量;接下来每行四个整数 x1,x2,y1,y2,表示左上角坐标(x1,y1)与右下角(x2,y2)输出每行一个整数,表示矩形的面积并。数据范围1 ≤\leq≤ n ≤\leq≤ 1e51 ≤\leq≤...原创 2020-02-23 11:41:03 · 1803 阅读 · 2 评论 -
划分树求第K大数
输入//1 5 4 8 7 3(第三大)输出//5#include #include #include using namespace std;int ans; #define N 100005int a[N], as[N];int n, m;int sum[20][N];int tree[20][N];void build(int c, int l,原创 2016-09-22 21:43:50 · 270 阅读 · 0 评论 -
二维线段树
#include#include#includeusing namespace std;int x,n,t;bool ans,f[4010][4010];void updatey(int p,int q,int l,int r,int y1,int y2){ if(y1==l&&y2==r){ f[p][q]^=1; return; } int mid=(l+r)>>原创 2016-09-22 21:41:46 · 289 阅读 · 0 评论 -
次小生成树
#include#include#include#include#includeusing namespace std;const int maxn=30010,maxm=150010,INF=100000000;struct node{ int x,y,w,f;};struct node a[maxm],tmp;int f[maxn],rank[maxn],pre[maxn原创 2016-09-22 21:40:29 · 245 阅读 · 0 评论 -
线段树求区间最值
#include #include #include const int maxn=200000+10; struct node{ int s; int l,r; }; struct node tree[maxn*10]; int a[maxn];原创 2016-09-14 19:28:35 · 336 阅读 · 0 评论