摘要: ###链接 一个很暴力的做法是直接树剖,对除路径上 \(\log n\) 个区间之外的加入决策,很明显要修改的区间也有 \(\log n\) 个,因为要支持删除,所以每个节点要加一个延迟删除的堆来维护,时间复杂度 \(O(n \log^3 n)\)。 发现决策会维持一段区间,可以用线段树分治,于是节 阅读全文
posted @ 2020-11-21 19:07 (o-ωq)).oO 阅读(105) 评论(0) 推荐(0) 编辑
摘要: ###链接 按 \(b\) 分组 \(dp\),最后合并时: f[i][j]=max(f[i][j],f[i][j-k]+f[i-1][min(w[i-1],k<<1|(m>>i-1&1))]); 表示容量为 \(j \cdot 2^i + (m\) & $2^i-1)$,分 \(j-k\) 个给 阅读全文
posted @ 2020-11-18 19:47 (o-ωq)).oO 阅读(71) 评论(0) 推荐(0) 编辑
摘要: ###链接 线段树合并,计算 \(sum\) 值时,要记录前缀和与后缀和,维护区间和与区间乘, 合并后的节点如果直接继承之前的节点的话要注意提前将值提取。 #include<bits/stdc++.h> #define IL inline #define LL long long using nam 阅读全文
posted @ 2020-11-18 00:07 (o-ωq)).oO 阅读(114) 评论(0) 推荐(0) 编辑
摘要: ###链接 类似于权值线段树查询区间 \(k\) 大值。。。(写复杂了。。。 #include<bits/stdc++.h> #define IL inline #define LL unsigned int using namespace std; const int N=5e5+3; int n 阅读全文
posted @ 2020-11-17 20:16 (o-ωq)).oO 阅读(64) 评论(0) 推荐(0) 编辑
摘要: ###P3899 [湖南集训]谈笑风生 二维数点问题,主席树模板(两种写法 #include<bits/stdc++.h> #define IL inline #define LL long long #define pb push_back using namespace std; const i 阅读全文
posted @ 2020-11-17 15:18 (o-ωq)).oO 阅读(79) 评论(0) 推荐(0) 编辑
摘要: ###链接 考虑区间的中位数为 \(v\) 应该满足什么条件。 让该区间中小于 \(v\) 的值等于 \(-1\),大于等于 \(v\) 的值等于 $1$,若和大于等于 $0$,则该区间的中位数大于等于 \(v\),否则小于 \(v\)。 (注意数的个数为偶数时,则取偏大的值作为中位数 所以我们可以 阅读全文
posted @ 2020-11-16 21:31 (o-ωq)).oO 阅读(143) 评论(0) 推荐(0) 编辑
摘要: ###P1270 “访问”美术馆 裸题。 #include<bits/stdc++.h> #define IL inline #define LL long long using namespace std; const int N=2e2+3,M=6e2+3; int n,cnt,kin[N],f 阅读全文
posted @ 2020-11-13 11:44 (o-ωq)).oO 阅读(111) 评论(1) 推荐(1) 编辑
摘要: ###链接 我好菜啊。。。 考虑每条边对答案的贡献为多少。 显然可以定义状态 \(f_{i,j}\) 表示 \(i\) 子树中有 \(j\) 个黑点,子树中每条边对答案贡献之和的最大值。 于是合并就是背包,方程为 \(f_{u,i+j}=f_{u,i}+f_{v,j}+((k-j)*j+((n-k) 阅读全文
posted @ 2020-11-10 16:14 (o-ωq)).oO 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 1.93k,70行树状数组套权值线段树代码不来康康嘛~ #include<bits/stdc++.h> #define IL inline using namespace std; const int N=5e4+3,Maxn=1e8+1,inf=2147483647; int n,m,a[N],c 阅读全文
posted @ 2020-11-10 01:03 (o-ωq)).oO 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 线段树分治是以时间点为下标,将修改以区间形式存储在线段树上,通过可撤销的数据结构进行单点查询(对于某些空间较小,难以实现撤销操作的数据结构如线性基可直接保存副本)。 模板:洛谷P5787 用按秩合并的带权并查集维护连通块中点之间边数的奇偶性来判断是否存在负环(用栈储存撤销操作,复杂度 \(O(nlo 阅读全文
posted @ 2020-11-10 00:53 (o-ωq)).oO 阅读(111) 评论(0) 推荐(0) 编辑