数据结构
llmxby
这个作者很懒,什么都没留下…
展开
-
2020牛客多校第九场H Distance(树分块+二次离线莫队)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6874思路:思路其实就是题解那个,已经讲得很清楚了,就是有些细节要写好点,详细的可以看代码,我跑了12s,应该是分块方法不够优秀,如果能分成严格的应该能快不少#pragma GCC optimize(2)#include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#i原创 2020-08-25 09:15:33 · 315 阅读 · 0 评论 -
51nod 1295(可持久化字典树)
题目链接:http://www.51nod.com/Challenge/Problem.html#problemId=1295思路:板子题#include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#include <cmath>#incl...原创 2019-11-16 13:27:19 · 169 阅读 · 0 评论 -
codeforces 1140 F(时间线段树)
题目链接:https://codeforc.es/contest/1140/problem/F思路:时间线段树部分挺裸的,一个点能把行和列连接在一起,那么答案就是每个联通快里面行的个数乘上列的个数,把行和列看成点的思想好像挺常见的,网络流建图什么的也可以经常可以看见这种思想,纪录一下#pragma GCC optimize(3)#include <unordered_map>...原创 2019-09-26 15:18:47 · 242 阅读 · 0 评论 -
hdu 6420(01分数规划+树状数组维护最小值)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6240思路:看见这个式子很容易想到01分数规划,01分数规划其实就是二分一个答案,然后吧分母乘过来,再移个项,由于本题要覆盖整个区间,很明显的是价值小于0的区间可以全选,那么问题就变为花费最少的代价覆盖剩余的点,这个东西dp加上树状数组维护最小值优化一下就好,我这个维护的是前缀最小值,所以坐标变动了...原创 2019-09-22 20:52:28 · 268 阅读 · 0 评论 -
Comet OJ - Contest #11 D(kruskal重构树)
题目链接:https://www.cometoj.com/contest/67/problem/D?problem_id=3801思路:以边链接两点的最大值为权值,建立kruscal重构树,然后线段树随便搞一搞就好下面是kruscal重构树的一些性质:1.(只考虑新节点)根据以下的构造过程,kruskal重构树是一颗二叉树,并符合二叉堆的性质。2.原树两点间的的最大边权就是krus...原创 2019-09-22 12:53:03 · 130 阅读 · 0 评论 -
codeforces 1217 F(时间线段树+可撤销并查集)
题目链接:https://codeforc.es/contest/1217/problem/F思路:没有那个在线的话,就完全是一道裸题,而那个在线可以发现总共只有两种可能,那么完全可以当做离线的来做,加些判断就行了#pragma GCC optimize(3)#include <unordered_map>#include <cstdio>#include ...原创 2019-09-12 16:51:32 · 291 阅读 · 0 评论 -
2019牛客多校第八场E(线段树+可撤销并查集)
题目链接:https://ac.nowcoder.com/acm/contest/888/E思路:线段树维护区间,然后从根节点开始dfs,用并查集维护连通性,回溯时撤销并查集的操作,注意离散化的时候把右端店++,这样维护的是一个左闭右开的区间,可以避免很多问题的发生#pragma GCC optimize(3)#include <cstdio>#include <c...原创 2019-09-12 14:48:35 · 164 阅读 · 0 评论 -
splay(luoguP3391)
题目链接:https://www.luogu.org/problem/P3391思路:splay模板题#include <cstdio>#include <cstdlib>#include <cstring>#include <bitset>#include <cmath>#include <cctype>...原创 2019-08-04 19:57:42 · 166 阅读 · 0 评论 -
bzoj3064(历史最值)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3064思路:还是16年国家集训队jls的论文#include <cstdio>#include <cstdlib>#include <cassert>#include <cstring>#include <bit...原创 2019-05-30 16:38:57 · 251 阅读 · 0 评论 -
codeforces 86 D. Powerful array(莫队)
题目链接:https://codeforc.es/contest/86/problem/D思路:模板题#include <cstdio>#include <cstdlib>#include <cassert>#include <cstring>#include <bitset>#include <cmath>...原创 2019-05-18 15:14:16 · 154 阅读 · 0 评论 -
codeforces 342 E. Xenia and Tree(最短路+分块+lca)
题目链接:https://codeforces.com/contest/342/problem/E思路:存下红点暴力lca复杂度会炸,所以每sqrt(m)个点用最短路更新一下到各个点距离,保证只和sqrt(m)个点求lca。#include <cstdio>#include <cstdlib>#include <cassert>#include ...原创 2019-05-24 14:53:13 · 200 阅读 · 0 评论 -
codeforces C. Cloud Computing(线段树)
题目链接:https://codeforces.com/contest/1070/problem/C思路:线段树水题一道,本来不想写什么题解的,结果发现别人几乎全是维护价格的,我这篇是维护天数的,首先离线m个询问,按照价格排序,那么对于每个询问这明显就是一个区间加减的操作而已,可以发现每一天最多只有一次会减小到0,那么维护一下区间最大值,最大值为0表示不需要更新,在维护一下区间最小值,最小值大...原创 2019-05-06 19:36:52 · 292 阅读 · 0 评论 -
E. Intersection of Permutations(分块+二维树状数组)
题目链接:https://codeforces.com/contest/1093/problem/E思路:两种操作对A数组没有影响,且两个数组都是1-n的全排列,那么可以将B数组的元素映射成A数组相同元素的下边,那么对于1查询就变成了问B数组中的一个区间中的元素有多少个大于L且小于R。对于这个问题,直接暴力查询复杂度是O(n*m),显然会超时,而用树状数组可以在已知是什么区间的情况下通过O(n...原创 2018-12-18 00:01:28 · 238 阅读 · 0 评论