POJ 3013 Big Christmas Tree

     看到dissguss里有个人说:自从做完这道题以后我开始讨厌过圣诞节了!o(∩_∩)o真囧~从来没过过什么圣诞节的表示没感觉。不过这题也确实是一道变态的题目、看看这题的通过率你就知道了。

     题目描述:要建一棵圣诞树,使得总的花费最小。具体规则是:圣诞树是一颗无向树形图,其中,编号为1的节点为根节点,原始图中每条边具有边权(unit):材料的单位价值,每个点也有一个权(weight):点的重量。生成树中,各个点处的花费是指向该点的边权(unit)* 该点的子树中所有点的重量(weight)和,总的花费则是生成树中所有点的花费之和。话说这个题意我理解了好久, ╮(╯▽╰)╭。谁要是看到我这篇博客真他妈不幸福死啊、这个描述真实清晰啊。捏哈哈哈~

     题目分析:我看好多大牛做这题时都将难度归为中低难度,有的人认为这就是一道水题。好吧、这题水到我想了好几天,今晚整理模版的时候才有了思路。我是这么做的:按照题目的要求我们先把样例求一遍、这是你会发现只要提个公因式、这题就变成了最短路问题(我想好多大牛说简单估计是知道了这是一道最短路题目吧?)。这样我们就可以先求出各个点到根节点的最短距离。然后让每个节点的权值*该距离算出总和就是我们所要的答案了。 

     另外,让我狂WA 10多次的原因我也找到了:const long long INF=(long long)1<<63-1;娘个腿的我代码必须这样写、
     PS:3000ms的题目我的代码可以飙到610ms。作为模版完全可以了!捏哈哈~
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值