一开始看的时候没有多想,直接最小生成树,再删最大边,拿了40分。
发现讨论区中许多小伙伴都拿了40分,估计自己的思路错了。
看了一下题解,理解了一下思路,大概理解了意思。
一开始先最小生成树,这个没有疑问。然后就是关键了。
选中任意一个点,放置卫星电话,然后开始找最大的边。
这条边有两种情况,一种情况是这条边的一个端点已经放置了卫星电话,这时候 在另一个点直接放置电话就行了。
还有一种情况是这条边两端都没有放置卫星电话,这时候可以拿任意放置卫星电话的点替换最大边。
光说的确很难懂,上图。
这样子红边右上方的两条边就可以替换掉任意一条。
已知有s个卫星电话,p个点,那么可以知道最小生成树中有p-1条边,可以进行s-1次上述的删除最大边操作,所以答案就是最小生成树中第(p-1-(s-1))小的边。