#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
#define inf 10000000
#define MAXN 20000 struct Edge{
int x,y,len;
}e[3*MAXN];
int n,m,r,ans;
int fa[MAXN];
int find(int x)
{
if(x != fa[x])
fa[x] = find(fa[x]);
return fa[x];
}
bool cmp(Edge x,Edge y)
{
return x.len>y.len;
}
void kruskal()
{
for(int i=0;i<=n+m;i++)
fa[i]=i;
ans=0;
sort(e,e+r,cmp);
int f1,f2;
for(int i=0;i<r;i++)
{
f1=find(e[i].x);
f2=find(e[i].y+n);
//cout<<e[i].x<<' '<<f1<<endl;
if(f1!=f2)
{
fa[f1]=f2;
ans+=e[i].len; }
}
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{ scanf("%d%d%d",&n,&m,&r);
for(int i=0;i<r;i++)
{
scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].len);
}
kruskal();
printf("%d\n",10000*(n+m)-ans);
}
}

冒个泡表示还活着。。。

这题需要转换下思维,就成最大生成树问题了。

poj3723 MST好题 kruskal的更多相关文章

  1. 经典算法题每日演练——第十六题 Kruskal算法

    原文:经典算法题每日演练--第十六题 Kruskal算法 这篇我们看看第二种生成树的Kruskal算法,这个算法的魅力在于我们可以打一下算法和数据结构的组合拳,很有意思的. 一:思想 若存在M={0, ...

  2. POJ 1861 Network (Kruskal求MST模板题)

    Network Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 14103   Accepted: 5528   Specia ...

  3. HDU-4126 Genghis Khan the Conqueror 树形DP+MST (好题)

    题意:给出一个n个点m条边的无向边,q次询问每次询问把一条边权值增大后问新的MST是多少,输出Sum(MST)/q. 解法:一开始想的是破圈法,后来想了想应该不行,破圈法应该只能用于加边的情况而不是修 ...

  4. 【HDU1162】Eddy's picture(MST基础题)

    很基础的点坐标MST,一不留神就AC了, - - !! #include <iostream> #include <cstring> #include <cstdlib& ...

  5. 【HDU1301】Jungle Roads(MST基础题)

    爽爆.史上个人最快MST的记录7分40s..一次A. #include <iostream> #include <cstring> #include <cstdlib&g ...

  6. 【HDU1879】继续畅通工程(MST基础题)

    真心大水题...不多说. #include <iostream> #include <cstring> #include <cstdlib> #include &l ...

  7. 【HDU1233】还是畅通工程(MST基础题)

    无坑,裸题.直接敲就恩那个AC. #include <iostream> #include <cstring> #include <cstdio> #include ...

  8. 【HDU1102】Constructing Roads(MST基础题)

    最小生成树水题.prim一次AC #include <iostream> #include <cstring> #include <cstdlib> #includ ...

  9. isaster(Comet OJ - Contest #11D题+kruskal重构树+线段树+倍增)

    目录 题目链接 思路 代码 题目链接 传送门 思路 \(kruskal\)重构树\(+\)线段树\(+\)倍增 代码 #include <set> #include <map> ...

随机推荐

  1. Docker实践 - 安装Docker并在容器里运行tomcat

    安装Docker yum install docker 本文使用的系统是centos7,ubuntu使用以下命令 sudo apt-get update sudo apt-get install do ...

  2. UUID.randomUUID().toString() 的作用

    public static String createNewId(){ return UUID.randomUUID().toString() ; } UUID.randomUUID().toStri ...

  3. RabbitMQ入门与使用篇

    介绍 RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue)协议的开源实现.用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面都非常的优秀 ...

  4. C#使用Xamarin开发可移植移动应用(3.Xamarin.Views控件)附源码

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. .NET ...

  5. Linux - 简明Shell编程04 - 判断语句(If)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash var=$1 # 将脚本的第一 ...

  6. ORACLE处理用户进程大剖析[阅读]

    下面我们要讲ORACLE服务器进程如何处理用户进程的请求,当一个用户进程发出了一条SQL语名:   UPDATE TABBLEA SET SALARY=SALARY*2:   首先,服务器进程把这条语 ...

  7. AIX逻辑卷扩容

    aix的文件系统扩容是非常灵活的,如果不涉及加硬盘的硬件操作,只要通过aix里面的命令或者smitty菜单就行了,当然做好数据备份在任何情况下都是必要的. 1. 查看个逻辑卷大小 # df -gFil ...

  8. 利用Div+CSS(嵌套+盒模型)布局页面完整实例流程

    Div+CSS(嵌套+盒模型)布局页面完整实例流程: <!DOCTYPE html><html> <head>  <meta charset="UT ...

  9. 01-artDialog4.1.7常用整理

    关闭弹出框的几种常见方法: 1,artDialog可以通过鼠标双击关闭对话框,esc关闭对话框等.为了在关闭对话框要执行某一方法,不能仅仅在弹框中的关闭按钮中写.这时提供了一个函数:close.无论在 ...

  10. Java 实现 Domino邮箱自动注册

    一.前提条件 Domino服务器需开通DIIOP服务 二.需要导入Java包 import lotus.domino.*; 三.实现Java代码 public void cerateID(MailPe ...