我要看的是纳西达,搞一堆正太是什么意思!!!
定义
一棵只包含关键点和任意两个关键点的 lca 的树。
构造过程
把关键点按照 dfn 序排序,把相邻的两个点的 lca 和关键点又丢到一个集合里,再按照 dfn 排序。
那么把相邻两个点的的 lca 与后面的点连边,最后得到的就是虚树了。
建出虚树,令边权为原图上经过所有边的最小值。
设 fi 表示以 i 为根的子树中所有的关键点都不与 i 相连的最小花费。
那么显然有:
fi={min(fson,Val(x→i))Val(x→i)opx=0Otherwise.
建出虚树,设 fi 表示以 i 为根的子树不联通的最小代价,cti 表示这时以 i 为根剩余关键点的个数。
那么显然:
fi=∑fson+⎩⎨⎧01ctx(∑ctson)≤1∧opx=0(∑ctson)>1∧opx=0Otherwise.
题目难度不够,题目乱描述来凑。
给定原点 K,建出最短路树,如果有多个最短路那么选择最后一个点的全驱最小的那一个。
对于操作 0,把输入的点全部颜色反转(初始时全部白色)。
对于操作 1,把 K 和输入的点建出虚树,然后进行《消耗战》。