T1.
前缀的最长公共后缀就是两个长度在sam上对应的节点的lca的len,所以可以对于每个lca考虑。
在每个lca处考虑当前长度的贡献,发现最优秀的解一定发生在两个相邻的下标之间。
所以直接启发式合并,然后离线处理询问就行了。
T2.
可以发现题目中对于点的要求就是重心。
也就是说,一个点不能有大小大于$n/2$的子树,可以发现这样的子树一定在重心方向。
然后可以发现,删掉这个点到重心路径上的点一定是无效的,因为剩余子树大小仍然大于$n/2$。
所以删掉的边只可能是重心周围的边,那么只要贪心选取大小最大的子树即可。
T3.
可以发现对于环中的点只要确定一个点就可以确定剩余所有点。
所以只要找到所有环对于每个环定向就行了。
然而直接跑会死。考虑对于大小为2的环,最优解显然是左括号在前,所以最小环的大小是4,总复杂度就合法了。