day 4 过于变态,咕咕咕了
Day-5【游记】
咕咕咕
Day-5【题解】
忘记的题面名称
难度:Medium
看起来是求最小斯坦纳树,但其实不是(
我们可以设 \(f(S)\) 为集合 \(S\) 中的点不需要借助其他的点就能联通的代价
\(d(g,S)\) 表示 \(g\) 到集合 \(S\) 的最短距离
容易写出转移方程:
\[f(S)=\min\limits_{u\in S}f(S\backslash\{u\})+d(u,S\backslash\{u\})
\\
d(u,S)=\min\limits_{u\in S}\left(\min(d(u,S\backslash\{u\}),w_{u,v})\right)
\]
初始状态:
\[f(\varnothing)=0,f(\{u\})=0
\\
g(u,\varnothing)=+\infty
\]
做高维后缀最小值即可
忘记的题目名称
难度:Medium+
建立序列自动机,之后相当于询问区间中DAG的路径条数
取一个在左端点右边的点,然后截断做dp
然后对于转移方程可写成矩阵形式
然后维护矩阵即可
其实过程还不是很理解,代码咕咕咕
忘记的题目名称
难度:Medium+
显然的可以对于每种颜色建虚树
赛时想到这里就不会啦!
然后我们考虑一个点与一个边的贡献
如果设 \(u,v\) 为两条路径,\(l\) 为其LCA
\(f_i\) 为其子树中经过 \(i\) 的路径条数,\(g_i\) 为所有经过 \(i\) 的路径条数,\(F(u)\) 为 \(u\) 到根节点所有的 \(v\) 之和,推导过程还是不写了,有点恶心
我们统计 \(2F(l)-g_l-F(v)\) 即可
如果 \(u\) 是LCA,比较好讨论
如果不是,我们直接考虑 \(l\) 的一个子树,然后其中的点会与子树中颜色相同的点对答案作出贡献
于是我们可以打标记,统一下传即可
Day-5【补题】
补题的题解并不放在这里,具体来说,它放在了题目泛刷记录3