原题链接

Prim(点归并)

//异或运算:相同为假,不同为真
#include<cstdio>
#include<algorithm>
#define maxn 105
using namespace std;
int n,m,sum,flag;
int fa[maxn];
struct Edge
{
int u,v,w;
bool operator<(const Edge &cmp)const{
return w<cmp.w;
}
}edge[maxn*maxn>>]; int Findset(int x)
{
if(fa[x]==x) return fa[x]=x;
else return fa[x]=Findset(fa[x]);
}
int main()
{
while(scanf("%d",&n),n){
m=(n-)*n/;
for(int i=;i<=n;i++)
fa[i]=i;
for(int i=;i<m;i++){
scanf("%d%d%d%d",&edge[i].u,&edge[i].v,&edge[i].w,&flag);
if(flag)
fa[edge[i].u]=edge[i].v;
}
sort(edge,edge+m);
sum=;
for(int i=;i<m;i++){
int x=Findset(edge[i].u);
int y=Findset(edge[i].v);
if(x!=y){
fa[x]=y;
sum+=edge[i].w;
}
}
printf("%d\n",sum);
}
}

参考链接

Kruscal(边归并)

#include<cstdio>
#include<cstring>
#define INF 0x3f3f3f3f
#define maxn 105
int i,j,k,n,m,min,sum;
int lowcost[maxn],visit[maxn];
int graph[maxn][maxn];
void Prim()
{
sum=;
memset(visit,,sizeof(visit));
visit[]=;
for(i=;i<=n;i++)
lowcost[i]=graph[][i];
for(i=;i<=n;i++){
min=INF;
for(j=;j<=n;j++){
if(!visit[j]&&min>lowcost[j]){
min=lowcost[j];
k=j;
}
}
sum+=lowcost[k];
visit[k]=;
for(j=;j<=n;j++){
if(!visit[j]&&lowcost[j]>graph[k][j])
lowcost[j]=graph[k][j];
}
}
} int main()
{
int a,b,c,d;
while(scanf("%d",&n),n){
m=(n-)*n/;
memset(graph,INF,sizeof(graph));
while(m--){
scanf("%d%d%d%d",&a,&b,&c,&d);
if(d) graph[a][b]=graph[b][a]=;
else graph[a][b]=graph[b][a]=c;
}
Prim();
printf("%d\n",sum);
}
return ;
}

HDU 1879 继续畅通工程(Prim||Kruscal模板题)的更多相关文章

  1. HDU 1879 继续畅通工程 (Prim(普里姆算法)+Kruskal(克鲁斯卡尔))

    继续畅通工程 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  2. hdu 1879 继续畅通工程

    /************************************************************************/ /* hdu 1879 继续畅通工程 Time L ...

  3. hdu 1879 继续畅通工程 (并查集+最小生成树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1879 继续畅通工程 Time Limit: 2000/1000 MS (Java/Others)    ...

  4. hdu 1233 还是畅通工程 (prim, kruskal)

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

  5. HDU 1874 畅通工程续(模板题——Floyd算法)

    题目: 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多.这让行人很困扰 ...

  6. HDU 1879 继续畅通工程(最小生成树)

    省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经 ...

  7. hdu 1879 继续畅通工程 (最小生成树)

    继续畅通工程 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  8. HDU 1879 继续畅通工程(Kruskra)

    继续畅通工程 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  9. (step6.1.1)hdu 1879(继续畅通工程——最小生成树、kruscal)

    题目大意:输入一个整数n,表示有n个村庄.在接下来的n(n-1)/2行中,每行有4个整数begin  end  weight  flag.分别表示从begin到end之间可以连通 ,他们之间的费用为w ...

随机推荐

  1. 什么原因接触接触impala的

    最近一个项目,关于大数据的改造项目,底层选择Impala还是sparkSQL呢? 最后选择Impala.这样就开启了我的Impala学习之旅.我大部分负责Imapa接口开发工作. 我是控制不住的想整个 ...

  2. PHP创建文件以及移动文件

    创建文件,这里用到的是fopen,即是打开,又是创建 <?php $counter_file = 'aa.txt ';//文件名及路径,在当前目录下新建aa.txt文件 $fopen = fop ...

  3. 小程序的movable-view怎么持续移动

    在小程序的官方例子中,点击按钮以后的movable-view只是挪动了一次(链接:https://mp.weixin.qq.com/debug/wxadoc/dev/component/movable ...

  4. spring AOP底层原理实现——jdk动态代理

    spring AOP底层原理实现——jdk动态代理

  5. mybatis-spring-1.2.1 jar下载、源码下载

    http://www.everycoding.com/maven2/org/mybatis/mybatis-spring/1.2.1.html

  6. Delphi 单元

    单元(unit)是组成Pascal程序的单独的源代码模块,单元有函数和过程组成,这些函数和过程能被主程序调用.一个单元至少要有unit语句,interface,和implementation三部分,也 ...

  7. Android 判断当前是否在跑monkey测试

    /**     * Returns true if Monkey is running.     */    public static boolean isMonkeyRunning() {     ...

  8. Android动态加载ListView中的Item

    我这周上网看到动态增加listview的每一项item的布局,今天抽空自己写了一个,方便自己日后使用,这个效果还是很不错的,用到了Adapter的notifyDataSetChanged()方法,当点 ...

  9. SSL安装方法二:Windows Server 2008安装SSL证书(IIS 7.5)

    SSL证书CSR和CA证书唯一的区别就在:申请证书中的通用名称,具体还要看具体的项目这里只做参考.可以参考SSL安装方法一 背景:IIS 7.5 一.收到SSL证书 仔细阅读邮件 按步骤进行: 1)  ...

  10. mysql数据类型及存储过程

    转自:http://www.cnblogs.com/mark-chan/p/5384139.html 存储过程简介 SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为 ...