随笔分类 - 线段树
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3015 题意:给定n组数,每组数有值x和值h,求n组数两两的val的总和。将所有x和所有h分别离散化(不去重)变成x'和h',val(i,j)为abs(x'i-x'j)*min(hi',hj')。 如:
阅读全文
摘要:题意:给n个线段,每个线段会覆盖一些点,求删最少的线段,使得每个点覆盖的线段不超过k条。 思路:按右端点排序,之后依次加入每个线段,查询线段覆盖区间内的每个点,覆盖的最大线段数量,如果不超过k,那就可以直接加入。 #include<bits/stdc++.h> using namespace std
阅读全文
摘要:线段树自用模板 #include <iostream> using namespace std; const int MAX_N=10010; int s[MAX_N<<2]; void up(int p) { s[p]=s[p<<1]+s[p<<1|1]; } void modify(int p,
阅读全文
摘要:题目链接:https://nanti.jisuanke.com/t/40852 题意:给定一个01串s,进行m次操作,|s|<=1e6,m<=5e5 操作有两种 l r 0,区间[l,r]升序排序 l r 1,区间[l,r]降序排序 输出m次操作后的串s 官方解析: 维护区间1的个数,区间0的个数=
阅读全文