一颗n个节点的树所有边都坏掉了。 请m个工人修路,每个工人都可以修一条树链ui到vi,费用为ci。 求最小修路费用,无法全部修复输出-1。
我们来设f[i]表示i子树全都修好(包括i到父亲那条边)的最小费用。 怎么转移呢? 比如有一个能修i到其父亲边的工人j,费用是这个工人的费用+其他杂七杂八的子树的f值和。 用线段树来维护,大概是这样吧QAQ
我们来看看一个强做法! 首先可以把修边看成修点,根节点不用修。 设xj表示第j个工人的使用次数,显然xj>=0 Ai,j=1表示第j个工人能第i个点,否则Ai,j=0
新闻热点
疑难解答