「BZOJ2654」tree 最小生成树+二分答案. 最开始并没有觉得可以二分答案,因为答案并不单调啊. 其实根据题意,白边的数目肯定大于need条,而最小生成树的白边数并不等于need(废话),可以二分将每条白边的权值+mid,这样就可以控制最小生成树中白边的条数, 对于一个mid,将所有的白边权值加mid,然后跑kruskal,求出最小生成树中白边的个数num以及此时的权值和ans(要减去mid*need),如果num=need直接输出ans,如果num<need 则让r=mid继续二分,如…