HDU 4126 Genghis Khan the Conqueror(最小生成树+树形DP)

题意:一个N个点的无向图,先生成一棵最小生成树,然后给你Q次询问,每次询问都是x,y,z的形式, 表示的意思是在原图中将x,y之间的边增大(一定是变大的)到z时,此时最小生成树的值是多少。最后求Q次询问最小生成树的平均值。 N<=3000 , Q<=10000。

思路:树形dp好题,想了一天加看题解才做出来。不难想出,如果更改边权的那条边不在最小生成树中,那么这次修改后的结果还是最小生成树的值。

问题是如果修改的这条边恰好在最小生成树中,那么情况就比较复杂,我们假设最小生成树上有两个相邻结点i,j,那么以i为根的子树到以j为根的子树的距离(连接两树的最小边权)为dp[i][j],

那么如果当前修改的是i到j之间的边,那么最后的答案就是最小生成树的值减去修改前的权值加上修改后的权值和dp[i][j]之间的较小值,这个可以用反证法来证,也很简单。</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值