UVA1205 Color a Tree 详解

题目大意大家可以打开题目描述中PDF看,下面开始讲题解。

一、思维尝试:

首先我们思考,为了让总的结果最小,整个树中权值最大的点一定在他的父亲节点染色之后马上染色。所以我们首先考虑将这两个点合并,继续在整个图中找最大权值……最后只剩根节点的时候合并结束,输出结果即可。

这个思路看起来不错,但是有一个问题:这个“最大权值”指的是什么呢?如果仅仅指每一个点的初始染色代价,那么只要构造一个像这样的图:(节点上的值表示每个点染色代价) 

(插一句:这个数据是我们机房巨佬 @sdfz171047 造出来的,真的好巧(du)妙(liu))

你会发现我们合并顺序是这样的:

10->2
5->1
4->2
2->1

这样的话,相当于的染色顺序为:

1->5->2->10->4

它的代价为:

1*1+5*2+2*3+10*4+4*5=77

然而,如果你用下面这个顺序染色:

1->2->10->5->4

代价就是:

1*1+2*2+3*10+5*4+4*5=75
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值