摘要: 题意:在一张无向图上,已知边权,做q组询问,问小于L的点对共有几组。点对间的距离取=min(两点之间每一条通路上的最大值)。分析:这里取最大值的最小值,常用到二分。而这里利用离线算法,先对边从小到大排序,逐一加入集合中。利用并查集,当两点之间不在同一个集合,那么所加入的边就是两个集合中任一点对的距离(两集合各取一点)。所以有cnt2+=num[fu]*num[fv];注意:有些询问比m条边中的最小边还小,比最大边还大。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int MAXN=11111; 7 8 .. 阅读全文
posted @ 2013-10-20 14:46 Thousand Sunny 阅读(403) 评论(0) 推荐(0) 编辑