这道题跟HDU 1213 How Many Tables 并查集很接近,都是赤裸裸的并查集的题。

思路:如果还须要建n-1条路。每并一次就自减1。

參考代码:

#include<stdio.h>
int fa[1000];
int find(int u)
{
return fa[u]==u? u:fa[u]=find(fa[u]);
}
int main()
{
int i,n,m,u,v,x,y;
scanf("%d%d",&n,&m);
while (n)
{
for (i=1;i<=n;i++) fa[i]=i;
for (i=1;i<=m;i++)
{
scanf("%d%d",&u,&v);
x=find(u);y=find(v);
if (x!=y)
{
fa[x]=y;
n--;
}
}
n--;
printf("%d\n",n);
scanf("%d%d",&n,&m);
}
return 0;
}

优化:先用数组储存m组数,然后仅仅对这些节点的根节点

赋初值fa[u[i]]=u[i];fa[v[i]]=v[i];

參考代码:

#include<stdio.h>
int fa[1000],u[1000],v[1000];
int find(int u)
{
return fa[u]==u?u:fa[u]=find(fa[u]);
}
int main()
{
int i,n,m,x,y;
scanf("%d%d",&n,&m);
while (n)
{
for (i=1;i<=m;i++)
{
scanf("%d%d",&u[i],&v[i]);
fa[u[i]]=u[i];
fa[v[i]]=v[i];
}
for (i=1;i<=m;i++)
{
x=find(u[i]);y=find(v[i]);
if (x!=y)
{
fa[x]=y;
n--;
}
}
n--;
printf("%d\n",n);
scanf("%d%d",&n,&m);
}
return 0;
}

HDU1232 畅通project 并查集的更多相关文章

  1. HDU1232 畅通工程 并查集

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  2. hdu1232 畅通工程 并查集的 应用

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  3. hdu1232畅通工程(并查集,简单题)

    传送门 最少好要修多少条路太能使全部城镇连通.只要用并查集算可以连通的城市的组数,修的路就是组数减1 #include<bits/stdc++.h> using namespace std ...

  4. HDU1232 畅通工程 (并查集模板题)

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  5. ACM: 继续畅通工程-并查集-最小生成树-解题报告

    继续畅通工程 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Descri ...

  6. ACM: 畅通工程-并查集-解题报告

    畅通工程 Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description 某省调查城镇交通状况 ...

  7. B - 畅通工程(并查集)

    对并查集理解之后就可以做这种题了,虽说这种题做的不多,这道题做过才这么快搞定,可是还是挺happy滴,加油 Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接 ...

  8. NSOJ 畅通工程(并查集)

    某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可). ...

  9. hdu 1233 还是畅通工程 并查集or最小生成树

    某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路 ...

随机推荐

  1. Genymotion出现Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE错误解决方法

    今天在Genymotion上执行曾经的一个项目(libs中有多个SDK和so文件)时,出现下面错误: Console控制台中:Installation error: INSTALL_FAILED_CP ...

  2. JavaFX学习之道:JavaFX之TableView

    TableView表     TableColumn列  构建一个表主要有TableView,TableColumn,ObservableList,Bean.  加入列table.getColumns ...

  3. 在fragment中显示对话框出现异常

    异常类型为:android.view.WindowManager$BadTokenException: Unable to add window 我在fragment中public View onCr ...

  4. Python 获取Google+特定用户最新动态

    CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-8-28 @author: guaguastd @name: l ...

  5. 根据数据表自动生成javaBean

    package fanshe; import java.io.File; import java.io.FileWriter; import java.io.IOException; import j ...

  6. 微软柯塔娜(Cortana)的一句名言

    近日.媒体频传Win 10装机量已经超过多少千万台.我操心的问题是,集成在Win 10操作系统中的柯塔娜小姐将怎样面对各色各样的人群.由于,在这个世界上.人是最复杂的生物,什么人都有. 依据国外媒体报 ...

  7. javascript 简单语法 对象属性及方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 三种SVM的对偶问题

    一.SVM原问题及要变成对偶问题的解决办法 对于SVM的,我们知道其终于目的是求取一分类超平面,然后将新的数据带入这一分类超平面的方程中,推断输出结果的符号,从而推断新的数据的正负. 而求解svm分类 ...

  9. Qt Quick Controls 与 Qt Quick Controls 2的区别(详细对照)

    Qt Quick Controls 原本是为支持桌面平台而开发的,后来又加入了移动平台和嵌入式平台的支持.它们应用非常广泛,因为它们提供了足够灵活的样式系统,以允许开发具有平台相关或者无关风格的应用程 ...

  10. iOS-UITextField 全面解析

    iOS中UITextField 使用全面解析 建议收藏,用到的时候来这里一查就都明白了 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField ...