要修建 m 条长度至少为 x 的赛道,无解输出 −1,否则输出未修建成赛道的道路长度和的最大值。下面是 2 个样例便于理解:
5 1 107
1 2 100
2 3 7
2 4 8
2 5 9
17
9 2 107
1 2 1
1 3 1
1 4 100
1 5 103
2 6 6
2 7 8
3 8 3
3 9 9
17
首先无解很容易判断,按照本题的二分判断做一次就行了。
但是有解时,如果按照本题的做法,修改部分代码,即取全部长度大于等于 x 的赛道。排序后将最大的若干条去掉得到的答案只是较优解,可以通过模拟我给的样例知道。
感觉不好维护上传的值的部分,全部上传最大的值肯定是有解的,但是如何在有解的情况下尽可能地贪心选小一点的值上传是一个很不好想的问题。(随机化方法:随机上传值,如果有解就按上面说的排序去值处理,再全局记录最优解)
如果有大佬有什么想法欢迎在这个讨论下面留言。