最大生成树

#include<iostream>
#include<cstdio>
#include<cstring>
#include<set>
#include<algorithm>
#include<stack>
#include<map>
#include<queue>
#include<list>
#include<vector>
using namespace std;
const int maxn = 50000 + 131;
const int maxm = 10000 + 131;
struct Edge {
int u, v, cost;
Edge(int u_, int v_, int c_): u(u_), v(v_), cost(c_) {}
bool operator < (const Edge a) const {
return cost > a.cost;
}
};
vector<Edge> G; /// Uinon-Set
int Pre[maxm * 2], Num[maxm * 2];
void Init(int N) {
for(int i = 0; i <= N; ++i)
Pre[i] = i;
} int Find(int x) {
/*int r = x;
while(r != Pre[r]) r = Pre[r];
return Pre[x] = r;*/
if(x == Pre[x]) return x;
else return Pre[x] = Find(Pre[x]);
} bool Union(int x, int y) {
int ax = Find(x), ay = Find(y);
if(ax == ay) return false;
Pre[ax] = ay;
return true;
} /// MST;
typedef long long LL;
LL Sum = 0;
LL Kusual(int N,int R)
{
Sum = 0;
sort(G.begin(),G.end());
Init(N);
for(int i = 0; i < G.size(); ++i)
{
int u = G[i].u, v = G[i].v;
if(Union(u, v))
{
Sum +=(LL) (G[i].cost);
}
}
return Sum;
} int main()
{
int N, M, R;
int x, y, d;
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d", &N, &M, &R);
G.clear();
for(int i = 0; i < R; ++i)
{
scanf("%d%d%d", &x, &y, &d);
G.push_back(Edge(x,y+N,d));
G.push_back(Edge(y+N,x,d));
}
//cout << Sum << endl;
//Sum = 0;
printf("%lld\n",(LL)(10000 * (N+M)) - Kusual(N+M,R));
}
}

最新文章

  1. 学习Git的总结与体会
  2. 浅谈Runloop
  3. Android lint 删除无用图片文件和配置文件
  4. C#拉姆达(=&gt;)表达式
  5. 傅里叶变换 fft_generic halcon
  6. freetds链接错误
  7. OSPF虚链路配置.示例2
  8. Mongodb Java Driver 参数配置解析
  9. 关于BigDecimal的四舍五入和截断 (2007-08-10 15:06:26)
  10. 贪心算法(2)-Kruskal最小生成树
  11. Black Box《优先队列》
  12. Selenium 切换句柄
  13. CSS3渐变相关
  14. 命令行下编译Wordcount
  15. Angular2+实现右键菜单的重定义--contextmenu
  16. 多节点通过PPP连接,节点/用户/客户机之间互相访问ping
  17. vue-cli 发布部署IIS
  18. 关于Vue单页面实现微信分享的Bug
  19. Android-textview图文混排(网络图片)
  20. Contest2073 - 湖南多校对抗赛(2015.04.06)

热门文章

  1. pytorch 学习--60分钟入个门
  2. 解析ArcGis拓扑——根据拓扑错误记录提取shp文件、导出Excel表格
  3. 深入理解Python异步编程(上)
  4. Vue.Draggable/SortableJS 的排序功能,在VUE中的使用
  5. 如何使用xss带cookie
  6. 小程序开发 从简单的 crud 开始
  7. 【全文转载】Precision Helper:最佳免费 CHM 制作软件
  8. 利用PHP访问数据库——实现分页功能与多条件查询功能
  9. c/cpp枚举练习
  10. linux 添加并格式化新硬盘