题意:
有 n 个城市,每个城市都有 wi 升油。如果两个城市之间有路,则通过这条路需要消耗 c 升。问从任意地方出发(边只经过一次),可以最多获得多少升油?
题解:
可以将题意转化为:在一棵树上求一条路径(所有点的权值和减去所有边的权值和最大)。
裸的树形dp,我们从第一个点出发进行 dfs,用 dp[i] 记录第 i 个点的权值最大,从儿子节点到父亲节点的权值取最优。即:
dp[u] = max(dp[u], dp[u] + dp[v] - c) 。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include