上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页
摘要: 题目链接 平衡树练手题,我们看它这个数列是动态插入的,所以自然而然就会想到用平衡树来维护。平衡树Splay推荐大家看这篇博客 其实差的最小值只有可能是它与其前驱或后继之差,不然就没有更小的了。因为节点是动态插入的,根据Splay的性质,我们为保证复杂度,就会每次将操作节点旋到根,而他的前驱和后继必然 阅读全文
posted @ 2019-08-13 16:40 JBLee 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目链接 虽然是NOI的题,其实自己想想也就可以做出来。先按题目中的依赖关系建造一颗树,初始的时候所有点权设为0,然后就是快乐的树剖。安装的话就是从节点到根节点的路径的点权值全部赋为1,删除则是把该节点及其子树的权值全部赋为0。统计操作前后两次的区间和,两次差值的绝对值即为答案。这样的好处就是之前已 阅读全文
posted @ 2019-08-13 15:27 JBLee 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题目链接 做这道题的时候,乍一看很熟悉,之前考试时也做过类似的题。这道题树剖+线段树是个人都看得出来,不过覆盖标记和加标记同时下放是这道题最坑的地方。当时考试的时候就被这东西搞惨了。 做法:树剖维护边权的时候等效于维护两点之间深度较深的点的点权,这很好理解。 在修改和查询的时候,注意到这张图,我们假 阅读全文
posted @ 2019-08-11 17:30 JBLee 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 题目链接 在刘汝佳的那本书上看到了这道题,思路:先预处理出起点到所有点以及终点到所有点的最短路径,然后就是枚举所有的商务边,因为只能有一条商务边,所以最优的路径肯定要么就是起点->商务边起点->商务边终点->终点,要么就是直接起点->终点。时间复杂度为预处理的mlogn加上k次枚举。最后还要递归输出 阅读全文
posted @ 2019-08-10 18:43 JBLee 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 线段树区间异或,四倍经验,666。 关于线段树区间异或: 就是维护区间0的个数,1的个数,取反实际上就是把他们swap一下,总数不变,lazy标记改为^1即可 洛谷有四倍经验 给出题号:P2574,SP7259,P2846,P3870。 P3870代码如下: #include<bits/stdc++ 阅读全文
posted @ 2019-08-08 17:40 JBLee 阅读(210) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/katherine_hsr/article/details/79179622 阅读全文
posted @ 2019-07-30 21:33 JBLee 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 似乎是打表+暴力专场,可惜我什么规律也找不出来,一题模拟乱搞,二三题神仙打表。 T1懒得写题面了 一句话题意,就是问你在一个n*m的01矩阵中有多少个k*k的子矩阵包含1 正解二维前缀和,考试的时候我想的是暴力模拟,把所有子矩阵扫一遍,打标记就得了。暴力模拟也挺好做,虽然自己造的大数据炸掉了,但是交 阅读全文
posted @ 2019-07-29 21:19 JBLee 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 先放板子,以后慢慢填坑 阅读全文
posted @ 2019-07-25 19:52 JBLee 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 题面 题解: 线段树合并的好题。在这题中我们可以用并查集维护连通块,因为要统计第k大,所以还可以用线段树合并来统计子树之间的信息。 坑点:1:注意炸内存 2:最后输出的是编号,要存起来 3:注意值域线段树中查询第k大的写法 代码如下: #include<cstdio> using namespace 阅读全文
posted @ 2019-07-24 09:53 JBLee 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 线段树合并裸题,其实这道题就可以看作每一个点的子树中比它的点权大的值的个数。看这道题的值域范围,知道要用动态开点的线段树,然后我们可以将p数组离散化,每一个点都建一棵对应的值域线段树。最后从根节点开始遍历,回溯时将有上司和下属关系的点合并即可。 而关键是合并操作: 其实还是很好理解的,我的代码没有新 阅读全文
posted @ 2019-07-23 21:46 JBLee 阅读(150) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页