采矿(oremine)题解

这是一篇关于采矿(oremine)问题的解题文章,主要讲述了如何在复杂的战场环境中,通过道路连接找到能采集到最多矿石的路径。算法涉及最长链问题,适合数据范围为N≤500000, M≤1000000的场景。" 120758413,9860823,深入理解Java控制语句:IF与Switch,"['Java', '编程语法', '流程控制']
摘要由CSDN通过智能技术生成

题目描述

作为一名刚拿到“苏联采矿车驾驶证”的司机来说,上战场采矿是一个很大的挑战。战场的形势复杂多变(最主要的原因是一不小心就会被恐怖机器人钻),但是这份工作丰厚的薪水还是使得苏联人民对之趋之若鹜。

现在你成为了一名光荣的矿车司机。交给你的任务是去采一片区域的矿。这片区域有N个矿点,矿点之间有N-1条长度为1的公路相连接。保证这些矿点两两都是可以通过公路到达的。你的矿车的油箱比较小,只能装M升柴油,而每行进长度为1的路程,就要消耗1升柴油。也就是说你只能行进M单位距离。为了简便,每个矿点的矿都是1个单位,并且当矿车驶过,矿就会被采完,第二次经过的时候就不会再有收益了。

你可以在任何一个矿点开始和结束采矿。

现在你想知道,你最多能采到多少单位的矿。

输入

第1行为两个整数N,M,意义上述。

第2行-第N行,每行两个整数u,v,表示在矿点u和矿点v之间有一条公路。

输出

一个整数,表示最多能采到多少矿。

样例输入

7 6
1 2
2 3
2 5
5 6
5 7
4 5

样例输出

5

提示

【数据范围】

30% :N<=200

50% :N<=20000

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值