雅礼集训2019 Day1

雅礼集训2019 Day1

three

给出一棵 n 个点的无根树,请在这棵树上选三个互不相同的节点,使得这个三个 节点两两之间距离相等,输出方案数即可。

考虑树形dp,在深度最小的路径上的点统计答案,\(f[i][j]\)表示i子树内深度为j的点个数,\(g[i][j]\)表示i子树内能和深度j的点匹配的方案个数(有 \(u\)\(v\) 到LCA距离都为 \(d\),LCA到 \(i\) 距离为 \(d-j\)

那么\(f[i][j]=\sum_{v}f[v][j-1],g[i][j]=\sum_vg[v][j+1]+f[i][j]*f[v][j-1]\)

长链剖分优化即可。

一般来说,跟深度有关的dp可以用长链剖分做到O(n),跟大小有关的dp可以用启发式合并做到O(nlogn),并且这两种都要求能O(1)合并一个儿子。

permutation

给出 n 个数Ai , 定义排列一个 1~n 的排列 P 的价值为: $\sum_{i≤n}𝐴_𝑖 ∗ 𝑃_𝑖 $ 请你给出排列价值前 k 小的 k 个排列的价值。

不会,待补

math

不会,不待补/kk

posted @ 2020-06-11 22:04  lcyfrog  阅读(318)  评论(0编辑  收藏  举报