随笔分类 -  Source—各省省选

摘要:"Link" Solution 考虑用$LCT$维护颜色。每一个$splay$维护的是两两不同的颜色。 第一个操作可以实际上就是$access$操作。 第二个操作问路径上的颜色种类数。第三个问子树内颜色种类的$max$。 因为是静态树,不能再把路径$split$出来了。考虑差分回答:$ans=cnt 阅读全文
posted @ 2020-01-03 15:11 Fruitea
摘要:"Link" Solution 首先不能看错题。题目里有句话: 子节点的标号为上一个 0 号操作叶子标号加 1 。 它是站在 全局0号操作 的角度的,比如上一次在$[l_0,r_0]$长了一个编号为$i$的节点,这一次0操作是在$[l,r]$,那么长出的节点应该是$i+1$。这样意味着某个编号的节点 阅读全文
posted @ 2020-01-03 14:41 Fruitea
摘要:"Link" Solution LCT维护边双的裸题。每次的答案是路径上边双数量 1。 维护边双可以用并查集维护,每次操作就直接作用在边双的代表元素上就行了。因为怕自己漏掉一些$find()$,导致没有在代表元素上操作,干脆就~~丧心病狂~~地在进入任意函数的时候都$find()$一遍(反正复杂度也 阅读全文
posted @ 2020-01-01 16:02 Fruitea
摘要:"Link" Solution 求两端点的子树大小然后相乘。 可以想到直接断边然后两边都$makeroot$一下。答案就是根节点的$size$。 但是怎么维护$size$呢?实子树大小可以直接由两个实儿子得到。但是虚子树不行。所以可以对每个点多维护一个$sv[]$,表示这个节点的虚子树大小总和。 那 阅读全文
posted @ 2020-01-01 10:32 Fruitea
摘要:"Link" Solution 感觉自己做完全靠蒙和猜,尽管是正解但并不知道为什么。看了题解才知道原来是生成树满足这个性质。 暴力可以枚举$max\{a\}$,然后在此条件下找$max\{b\}$最小的$1$到$n$的路径。 优化可以参照kruskal的思想。 先把所有边按$a_i$从小到大排序。维 阅读全文
posted @ 2020-01-01 10:13 Fruitea
摘要:单旋 Description 给你一棵单旋splay,让你维护执行某些操作之后节点的深度信息。 单旋splay就是说在祖父 父亲 我,三点一线的时候,仍坚持旋转我两次。 双旋就是先旋父亲一次,再旋我一次。 Solution 题目只要求旋转最小值和最大值到根(其实旋转别的似乎也差不多??)。手模一个三 阅读全文
posted @ 2019-12-24 19:30 Fruitea
摘要:"Link" Description 一共$n$个人,每个人有 两个名字串 。再给定$m$个点名串。询问每个点名串是多少人名字串的子串。第二问询问对于每个人,一共有多少点名串是其两名字串(满足一个串即可)的子串。 Solution SA+莫队。 结论 :串$T$是串$S$的子串,应当满足串$S$有某 阅读全文
posted @ 2019-12-22 22:45 Fruitea
摘要:Link Description 给定一张$n$个点$m$条边的无向连通图。共$q$次询问,每次询问给出一个点集$S$,询问有多少个点满足不在$S$中,且删去后使得$S$中的点不全在一个联通分量中。 Solution 把圆方树建出来。那么题目询问的就是$S$中的点形成的极小联通子树中圆点数量减去$| 阅读全文
posted @ 2019-12-22 17:28 Fruitea
摘要:"Link" Description 给定一棵n个点的树,树上有若干关键点。每次操作将一个关键点变成非关键点或一个非关键点变为关键点,并询问所有关键点形成的极小联通子树边权和的两倍。 Solution 先摆结论: 假设树上关键点按照$dfs$序排列为{$a_1,a_2,a_3,\dots,a_t$} 阅读全文
posted @ 2019-12-22 16:57 Fruitea