一道难度较大的树形$DP$思维题
考虑设$dp[i][j]$为以$i$节点为根,有$j$个$B$类叶子节点的子树的最小费用
对于每一对叶子节点$i$和$j$,它们的贡献$f_{i,j}$只会在它们的$Lca_{i,j}$上计算
那么可以把$f_{i,j}$先记录在它们的$Lca_{i,j}$上
然后考虑$dfs$维护$dp$,预处理出每个叶子节点可能产生的贡献
最后根据$A$和$B$两类叶子节点个数的限制,分情况进行转移即可
1 |
|
Lonely Kid Hides in Heart
一道难度较大的树形$DP$思维题
考虑设$dp[i][j]$为以$i$节点为根,有$j$个$B$类叶子节点的子树的最小费用
对于每一对叶子节点$i$和$j$,它们的贡献$f_{i,j}$只会在它们的$Lca_{i,j}$上计算
那么可以把$f_{i,j}$先记录在它们的$Lca_{i,j}$上
然后考虑$dfs$维护$dp$,预处理出每个叶子节点可能产生的贡献
最后根据$A$和$B$两类叶子节点个数的限制,分情况进行转移即可
1 | #include<bits/stdc++.h> |