abc394
E:
考虑从回文中心向外拓展。我们的回文串中心要么是一个点,要么就是一条边,然后全部都push进一个队列里。然后枚举出边转移即可。
发现这个东西实在太不优美了。
我们设f[i][j]还是从i到j的最短回文路径
g[i][j][col]为第一条边为col,其余边为回文路径
我们g[i][j][col]到f[i][j]的转换枚举出边要n3,然后f[i][j]到g[i][j][col],我们要26*n2的,具体而言就是将边按颜色分类然后直接转移,反正至多也是n^3,厉害!
F:
固定根
烷要么是根有4个儿子,要么有1个儿子,分讨一下。我们dp[u]为第一类烷的最大大小,然后直接树形dp维护即可
G:
最终的方案肯定可以转化成一开始走下去,然后最后再走上去。我们要让路径上的楼房最大高度尽可能大,所以我们想到了二分答案。但是不太行。我们把询问离线,然后每次把所有小于的边加进去。这个我们就直接kruskal重构树即可,边权就是两个的min,这不就做完了。
唉,本来有机会AK的,但还是代码能力有限了。

浙公网安备 33010602011771号