其他分享
首页 > 其他分享> > #4973. [Lydsy1708月赛]比特战争

#4973. [Lydsy1708月赛]比特战争

作者:互联网

4973. [Lydsy1708月赛]比特战争
这个题确实是有点妙...
首先我们可以考虑最终的答案是怎么样的,肯定是若干个连通块,和一些单独的点,考虑它们对答案的贡献分别是什么,单独的点肯定是\(a_i*b_i\),连通块的话考虑所有的点和所有的边都被占领了,所有贡献为\(max(maxa_i,maxc_i)*minb_i\),简单来时候就是就是在某一个\(b_i\)最小的国家降落足够多的士兵,然后带着这些士兵将这个连通块全部占领。接下来考虑答案具有哪些性质?可以看到由于\(maxc_i\)的存在,我们希望连通块内的边权足够小。那么就是说这个连通块内的边一定是当前连通块内的最小生成树。(联通,且最大边权最小)。那我们可以做一下kruskal,在枚举每个边的时候维护每个连通块内的\(maxa_i,max_ci,minb_i\),然后将每个点都先当成一个单独的连通块,做kruskal,来维护答案与连通块。

标签:月赛,连通,边权,Lydsy1708,答案,maxc,maxa,minb,4973
来源: https://www.cnblogs.com/gcfer/p/15863548.html