随笔分类 - 线段树
摘要:题意:输入n,m; n代表1-n的区间,m代表有m个操作。对于每个操作如果先输入1,则输入w,找到区间最左边未被占用的连续长度为w的区间,返回左端点,并把这段区间标记为已被占用。如果整个区间没有找到符合条件的区间。则返回0。如果输入为2,则将这段区间标记为未被占用。解法:维护3个变量sum,lsum...
阅读全文
摘要:区间修改#include #include #include using namespace std;const int MAXN = 100010;struct tree{ int l,r; long long sum,lz;}a[MAXN>1; Build(l,mid,...
阅读全文
摘要:线段树#include #include #include #define N 32010using namespace std;struct tree{ int l,r; int sum;}a[4*N];void build(int l,int r,int k){ a[k].l=...
阅读全文