HDU-1102-Constructing Roads(并查集)
题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=1102
这题大意就不讲了,
这题很容易,不过我做的很不爽,一个下午,一直WA,后来才发现数组开小了
只开了s[6000],本来100*100=10000,要开至少10000的搞糊了,一直WA
一个下午,以后做题,要把思路全部理清才开始敲代码,别边想边敲,那样,很容易搞错
我的代码
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
struct node
{
    int x,y,d;
}s[10005];
int father[111];
int sum;
bool cmp(const node &a,const node &b)
{
    return a.d<b.d;
}
int Find(int x)
{
    if(x==father[x]) return x;
    father[x]=Find(father[x]);
    return father[x];
}
void Union(int x,int y,int d)
{
    x=Find(x);
    y=Find(y);
    if(x!=y)
    {
        father[x]=y;
        sum=sum+d;
    }
}
int main(void)
{
    int n,m,i,j,k,l;
    while(scanf("%d",&n)==1)
    {
        l=0;
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                s[l].x=i;
                s[l].y=j;
                scanf("%d",&s[l].d);
                l++;
            }
        }
        int q,x,y;
        scanf("%d",&q);
        for(i=1;i<=q;i++)
        {
            scanf("%d%d",&x,&y);
            s[(x-1)*n+y-1].d=0;
            s[(y-1)*n+x-1].d=0;
        }
        sort(s,s+l,cmp);
        for(i=1;i<=n;i++)
        father[i]=i;
        sum=0;
        for(i=0;i<l;i++)
        {
            Union(s[i].x,s[i].y,s[i].d);
        }
        k=0;
        for(i=0;i<=n;i++)
        {
            if(i==father[i])
            k++;
        }
        if(k)
        printf("%d\n",sum);
    }
    return 0;
}
HDU-1102-Constructing Roads(并查集)的更多相关文章
- HDU 1102 Constructing Roads, Prim+优先队列
		题目链接:HDU 1102 Constructing Roads Constructing Roads Problem Description There are N villages, which ... 
- HDU 1102(Constructing Roads)(最小生成树之prim算法)
		题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1102 Constructing Roads Time Limit: 2000/1000 MS (Ja ... 
- hdu 1102    Constructing Roads  (Prim算法)
		题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1102 Constructing Roads Time Limit: 2000/1000 MS (Jav ... 
- hdu 1102 Constructing Roads (最小生成树)
		题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1102 Constructing Roads Time Limit: 2000/1000 MS (Jav ... 
- HDU 1102 Constructing Roads (最小生成树)
		最小生成树模板(嗯……在kuangbin模板里面抄的……) 最小生成树(prim) /** Prim求MST * 耗费矩阵cost[][],标号从0开始,0~n-1 * 返回最小生成树的权值,返回-1 ... 
- hdu 1102 Constructing Roads  Kruscal
		题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1102 题意:这道题实际上和hdu 1242 Rescue 非常相似,改变了输入方式之后, 本题实际上更 ... 
- HDU 1102 Constructing Roads(kruskal)
		Constructing Roads There are N villages, which are numbered from 1 to N, and you should build some r ... 
- HDU 1102 Constructing Roads
		Constructing Roads Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ... 
- hdu 1102 Constructing Roads(kruskal || prim)
		求最小生成树.有一点点的变化,就是有的边已经给出来了.所以,最小生成树里面必须有这些边,kruskal和prim算法都能够,prim更简单一些.有一点须要注意,用克鲁斯卡尔算法的时候须要将已经存在的边 ... 
- hdu 1102 Constructing Roads(最小生成树 Prim)
		题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1102 Problem Description There are N villages, which ... 
随机推荐
- 在Window平台下安装xgboost的Python版本
			原文:http://blog.csdn.net/pengyulong/article/details/50515916 原文修改了两个地方才安装成功,第3步可以不用,第2步重新生成所有的就行了. 第4 ... 
- Qt5:QSystemTrayIcon类实现程序托盘图标
			windows下,在许多应用程序中都会实现一个托盘图标,用于隐藏应用程序窗口时还能对该应用程序进行简单的操作,例如 QQ ,renren等程序 那么,在Qt中,如何实现呢? 这就要用到Qt提供的 QS ... 
- 嵌入式linux插入内核模块Error: could not insert module xxx.ko: Device or resource busy处理
			设备号冲突导致 处理方法: 1.输入$cat /proc/devices 查看驱动的设备号 2.选择一个不冲突的设备号进行编译 参考文献: 1.http://blog.csdn.net/zzc_19/ ... 
- java fx example
			http://www.java2s.com/Tutorials/Java/JavaFX/1500__JavaFX_WebEngine.htm 
- Unity3d之shaderLab内置变量
			float4 _WorldSpaceCameraPos camera在世界坐标系中的位置float4 _WorldSpaceLightPos0 灯光在世界坐标系中的位置 转载请注明出处: http:/ ... 
- Ubuntu iptables 设置
			在ubuntu中由于不存在 /etc/init.d/iptales文件,所以无法使用service等命令来启动iptables,需要用modprobe命令. 启动iptables modprobe i ... 
- kafka第四篇--快速入门(如何使用kafka)
			Quick Start Step 1: Download the code Download the 0.8 release. > tar xzf kafka-<VERSION>.t ... 
- LWIP_STM32_ENC28J60_NETCONN_UDP(3)
			前面移植了lwip之后只是简单地做了一个dhcp的程序,但是实际工作中经常要用来通讯,那今天就来讲一讲怎么用lwip来进行UDP通讯 要使用数据通信首先第一步得知道lwip是怎么样保存数据的,在使用n ... 
- 25个Linux性能监控工具
			一段时间以来,我们在网上向读者介绍了如何为Linux以及类Linux操作系统配置多种不同的性能监控工具.在这篇文章中我们将罗列一系列使用最频繁的性能监控工具,并对介绍到的每一个工具提供了相应的简介链接 ... 
- displayport-2
			上一章讲述了display-port的硬件连接,今天来说说协议层 图中可以看到,最底层是物理层,上层是连接服务层,提供的服务包括同步数据传输服务,aux链接服务,aux设备数据传输服务,在设备端也一样 ... 
