A. MiniumCut
发现答案一定可以是一棵树,因为对于任意一个合法的图求出它的最小割树也是答案。
然后就考虑构造,根据一些性质可以猜想实际上就是原图的最大生成树,所以直接跑就行了。求出生成树之后再暴力检验是否合法即可。
B. Tree
发现这个东西的形式很熟悉,假如再加入第一个点和最后一个点的权值的话,那么答案就是虚树边权和的二倍。
那么现在的问题就是,有一条路径贡献的系数是1,其他路径贡献的系数都是2,求最小代价。
那么做一个简单的树形dp即可。考虑当前点的子树中一共存在多少个系数为1的路径的端点,由此可以确定转移系数。
C. 塔
发现加入一个字符之后答案不会变化很大,最多也只是上一次的答案+2,所以可以用hash暴力判断是否是回文串。
维护hash,后面插入直接维护,前面插入时由于已知下一个位置的hash,同时存在逆元,所以可以得到当前位置的hash。