摘要: 按边从小到大排序。对于每条边(from, to, dist),如果from和to在同一个集合中,那么这条边无意义,因为之前肯定有比它更小的边连接了from和to。如果from和to不属于同一个集合,那么增加这条边后增加的点对数目是cnt[from]*cnt[to]*2( 因为(u, v)和(v, u)不算同一点对,所以*2 )统计出所有点对数total。对于查询,按t值从小到大排序,边从小到大一条一条往里加。tmpSum为f值小于t的点对总数。当边权大于等于t值时:ans[i] = total - tmpSum。当边权小于t值时,更新tmpSum。#include #include #incl 阅读全文
posted @ 2013-09-26 21:09 冰鸮 阅读(209) 评论(0) 推荐(0)