duang神给的一道题,感觉还是很有思考。
题中给出两类边
求恰好包含k条a类边的最小生成树
一开始没什么头绪
但是结果可以这样考虑
ans=min(∑e(a)+∑e(b));
如此一来
假设给所有e(a)减去一个值d那么ans=Min(∑(e(a)-d)+∑e(b));
也就是ans=min(∑(e(a))+∑e(b)-kd);
并不影响最小生成树的性质
所以就可以借用这个d来进行二分调控,使得做出来的最小生成树边数刚好为k
如此一来就可以二分解决了。
因为是看了学姐的题解所以算是转载吧

本文详细解释了如何通过引入变量d进行二分查找,解决在给定边集下找到恰好包含k条特定类型(a类)边的最小生成树的问题。通过调整d的值,最终实现最小生成树边数为k的目标。
1301

被折叠的 条评论
为什么被折叠?



