码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1879-继续畅通工程

时间:2016-07-30 22:22:02      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

原题链接:点击此处

1233的升级版(因为差不多所以都放一起了),就是加了一个状态,因此我们可以先判断每条路的状态,如果是修好的,就让它们的成本是0;如果没修,就给出成本。其余地方和1233一样,程序唯一的改动在此:

判断状态:

技术分享
for(i=1;i<=n;i++)
            {
                scanf("%d %d %d %d",&tree[i].u,&tree[i].v,&tree[i].len,&tree[i].build);
                if(tree[i].build==1)
                    tree[i].len=0;
            }
View Code

合并:

技术分享
 for(i=1;i<=n;i++)
        {
            int x=Find(tree[i].u);
            int y=Find(tree[i].v);
            if(x==y)
                continue;
            pre[y]=x;//这里是把x当作了整棵最小生成树的根节点,写成parent[x]=y也可以,根节点换成了y,这里的x,y值都不会大于村庄的编号
            cost+=tree[i].len;
            Unoin(tree[i].u,tree[i].v);
        }
View Code

其他程序看前一个文章吧,就不多说了。

HDU 1879-继续畅通工程

标签:

原文地址:http://www.cnblogs.com/gdvxfgv/p/5721823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!