E. 2-3-4 Tree
题意
裸的 $B+$ 树
题解
代码
1 | const int k=4; |
G. Factories
题意
给一棵树,选择 $k(1\le k\le 100)$ 个叶节点,使得两两之间的路径和最小。
题解
$dp[i][j]$ 表示在以 $i$ 为根的子树中选择 $j$ 个叶节点的最小花费,其中不仅包括 $j$ 个节点两两之间的路径,还包括 $j$ 个节点经过节点 $i$ 与另外 $k-j$ 相连的路径和。
转移方程为 $dp[u][i]=min(dp[u][i],dp[u][i-j]+dp[v][j]+j\times (k-j)\times dis[u][v])$
状态转移的时 $i$ 应该从大到小枚举,避免先更新了较小值后面又使用。另外还需要记录一下每个节点的有效值的范围,不然会 $TLE$
代码
1 | struct Node{ |
题意
题解
代码
1 |