20210602模拟赛总结

狂粉司公子!

T1

拓展的汉诺塔问题。

先取下来i个盘子,利用j个柱子放到另一个柱子上,最少的步数记为 \(f[i][j]\) 。随后将剩下 \(n-i\) 个盘子利用 \(j-1\) 个盘子挪过去,步数为 \(f[n-i][j-1]\) ,然后再用 \(f[i][j]\) 步把刚开始的那 i 个盘子挪上去。

可以得到 \(f[n][m] = \min(2f[i][m] + f[n-i][m-1])\)

T2

显然最小的后缀一定是 'a' 开头。看它与后面的那个同去掉首字母的大小,判断是否需要往下换字母即可,正确性不太清楚。

T3

考虑设 f[u] 为从 u 走到 fa[u] 的期望步数,可以得到 \(f[u] = deg + \sum f[v]\)

设 g[u] 为从 fa[u] 走到 u 的期望步数,可以得到 \(g[v] = \sum\limits_{v \neq V}f[V] + g[u] + deg = f[u] + g[u] - f[v]\)

然后树上前缀和简单处理一下就好了。

posted @ 2021-06-02 13:28  nao-nao  阅读(50)  评论(0编辑  收藏  举报