随笔分类 - 迷之线段树
摘要:[TOC] 题目链接 "传送门" 思路 $kruskal$重构树$+$线段树$+$倍增 代码
阅读全文
摘要:[TOC] 题目链接 "传送门" 题意 问$s$串中所有本质不同的回文子串中有多少对回文子串满足$a$是$b$的子串。 思路 参考代码: "传送门" 本质不同的回文子串肯定是要用回文树的啦~ 在建好回文树后分别对根结点为$0,1$的子树进行$dfs$,处理出以每个结点为根结点的子树的大小$sz$(也
阅读全文
摘要:题目链接 "传送门" 题意 在一张$n\times m$的矩阵里面,你每次可以往左右和下三个方向移动(不能回到上一次所在的格子),$1$表示这个位置是墙,$0$为空地。 现在有$q$次操作,操作一是将$(x,y)$这个位置的状态取反,操作二问你从$(1,x)$走到$(n,y)$的方案数。 思路 首先
阅读全文
摘要:[toc] 最近经常遇到二维平面统计点的个数,稍微写个总结。 CDQ分治 BZOJ1935 园丁的烦恼 "题目传送门" 题解地址: "传送门" BZOJ1176 Mokia "题目传送门" 题目链接: "传送门" Distance(2019年牛客多校第八场D题+CDQ+树状数组) "题目传送门" 题
阅读全文
摘要:题目链接 "传送门" 题意 每次往集合里面添加一段连续区间的数,然后询问当前集合内的中位数。 思路 思路很好想,但是卡内存。 当时写的动态开点线段树没卡过去,赛后机房大佬用动态开点过了,$tql$。 卡不过去就只能离散化加左闭右开线段树写了。 代码 cpp include include inclu
阅读全文
摘要:题目链接 "传送门" 题意 给你一张无向图,每条边$u_i,v_i$的权值范围为$[L_i,R_i]$,要经过这条边的条件是你的容量要在$[L_i,R_i]$,现在问你你有多少种容量使得你可以从$1$走到$n$。 思路 跟着大佬们的代码学了波可撤销并查集和线段树骚操作,感觉自己好菜啊。 首先我们用并
阅读全文
摘要:题目链接 "传送门" 思路 这个题在$BZOJ$上有个二维平面的版本($BZOJ2716$天使玩偶),不过是权限题因此就不附带链接了,我也只是在算法进阶指南上看到过,那个题的写法是$CDQ$,然后比赛开始半个小时我就开始写$CDQ$,$T$了之后冷静分析发现复杂度我少算了个$log$,$CDQ$写这
阅读全文
摘要:题目链接 "传送门" 题意 给你$n$个基底,求$[l,r]$内的每个基底是否都能异或出$x$。 思路 线性基交板子题,但是一直没看懂咋求,先偷一份咖啡鸡板子写篇博客吧~ 线性基交学习博客: "传送门" 代码实现如下 cpp include include include include inclu
阅读全文
摘要:题目链接 "传送门" 题意 要你找一个最长的区间使得区间内每一个数出现次数都大于等于$K$。 思路 我们通过固定右端点考虑每个左端点的情况。 首先对于每个位置,我们用线段树来维护它作为$C$种元素的左端点的可行性。 对于每个元素我们用$vector$存下它出现的所有下标。 枚举右端点$i$,对于$[
阅读全文
摘要:题目链接 "传送门" 题意 给你$n$个点,每个点的坐标为$(x_i,y_i)$,有两个权值$a_i,b_i$。 现在要你将它分成$\mathbb{A},\mathbb{B}$两部分,使得在满足“$\mathbb{A}$的点不能落在在$\mathbb{B}$的点的右下方”的条件下$\sum\limi
阅读全文
摘要:题目链接 "传送门" 题意 初始时有$n$个空串,然后进行$q$次操作,操作分为以下两种: wrap l r x:把$l,r$中的每个字符串的首尾都加入$x$,如$s_i=121,x=3\rightarrow s_i=31213$; query l r:查询$\sum\limits_{i=l}^{r
阅读全文
摘要:题目链接 "传送门" 题面 题意 给你一个$a$数组和一个$k$数组,进行$q$次操作,操作分为两种: 将$a_i$增加$x$,此时如果$a_{i+1} include include include include include include include include include i
阅读全文
摘要:题目链接 "传送门" 题面 思路 设$x=\prod\limits_{i=l}^{r}a_i$=$\prod\limits_{i=1}^{n}p_i^{c_i}$ 由欧拉函数是积性函数得: $$ \begin{aligned} \phi(x)&=\phi(\prod\limits_{i=1}^{n}
阅读全文
摘要:题目链接 "传送门" 题面 思路 对于线段树的每个结点我们存这个区间的最大值$mx$、最大值个数$cnt$、严格第二大数$se$,操作$0$: 如果$mx\leq val$则不需要更新改区间; 如果$se\leq val include include include include include
阅读全文
摘要:对于许多的图论题,有些题可能会出现结点要与区间内的每个点都进行建边,但是如果进行遍历建边,那么复杂度可能会被卡到$O(n^2)$,此时线段树的骚操作就出来了。 我们知道线段树的每个结点就是一个区间,那么我们就可以把点与区间建边转换为点与线段树上的结点进行连边。 以下是几道线段树优化建边的题目帮助您理
阅读全文
摘要:题目链接 "传送门" 线段树$+$二分思路 思路 比赛看到这题时感觉是一棵线段树$+$主席树,然后因为不会带修改主席树就放弃了,最后发现还卡了树套树。 由于本题数据保证序列中相同的数字不会超过200个,因此我们将每个读入的数和修改之后的数一起离散化一遍,然后用一个$vector$记录每个数出现的下标
阅读全文
摘要:题目链接: https://codeforces.com/contest/1093/problem/G 题目: 题意: 在k维空间中有n个点,每次给你两种操作,一种是将某一个点的坐标改为另一个坐标,一种操作是查询[l,r]中曼哈顿距离最大的两个点的最大曼哈顿距离。 思路: 对于曼哈顿距离,我们将其绝
阅读全文
摘要:题目链接:https://www.spoj.com/problems/COT/en/ 题目: 题意: 给你一棵有n个节点的树,求节点u到节点v这条链上的第k大。 思路: 我们首先用dfs进行建题目给的树,然后在dfs时进行主席树的update操作。众所周知,主席树采用的是前缀和思想,区间第k大是与前
阅读全文
摘要:题目链接:http://codevs.cn/problem/4163/ 题目: 思路: 线段树求逆序对板题,不过一开始因为离散化姿势不对一直T,后面换了离散化方法,刚好卡过。 代码实现如下:
阅读全文
摘要:题目链接:http://codeforces.com/gym/101466/problem/K 题目: 题意: 给你一棵有n个节点的树,根节点始终为0,有两种操作: 1.RAND:查询以u为根节点的子树上的所有节点的权值的乘积x,及x的因数个数。 2.SEED:将节点u的权值乘以x。 思路: 比赛时
阅读全文

浙公网安备 33010602011771号