随笔分类 -  数据结构

摘要:typedef long long LL; constexpr inline int lg2(LL x) { return sizeof(LL) * 8 - 1 - __builtin_clzll(x); } template<typename T, size_t N, size_t K> stru 阅读全文
posted @ 2022-10-30 12:34 John_Ran 阅读(26) 评论(0) 推荐(0) 编辑
摘要:F Path Intersection 题意:求Q次树上路径交。 题解:树链剖分之后,对于每一条路径,暴力的往上跳,并且用线段树维护一下个数,最终我们需要线段树中最大值和个数。复杂度O(nlog^2n),码量巨大。 #include<bits/stdc++.h> using namespace st 阅读全文
posted @ 2020-10-20 11:03 John_Ran 阅读(111) 评论(0) 推荐(0) 编辑
摘要:G techland 题意:给你一颗树,查询连续的一段节点距离某一个节点的最小距离。 题解:考虑树上分块。将连续的节点分成sqrt(n)个块,并且在这些块中,采用树形dp,预处理出距离到每一个节点的最小距离。对于块内的部分O(1)的查询。其他的部分,采用树上dfs序,O(1)查询LCA,暴力搞。(码 阅读全文
posted @ 2020-10-20 10:52 John_Ran 阅读(87) 评论(0) 推荐(0) 编辑
摘要:牛客练习赛66 E 传送门 题意:给你一个排列,问有多少个区间满足第一个数字是次小值,最后一个值是次大值。 分析:考虑到次小值的约束,可行的右端点肯定是一个区间。即第一个小于它的值到第二个小于它的值(不包含)之间的所有位置。同理可以考虑次大值的约束。最终对于一个右端点来说,可行的左端点肯定也是一个区 阅读全文
posted @ 2020-06-27 01:40 John_Ran 阅读(88) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示