雅礼集训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