HDU 1879 继续畅通工程(Prim||Kruscal模板题)
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模板题)的更多相关文章
- HDU 1879 继续畅通工程 (Prim(普里姆算法)+Kruskal(克鲁斯卡尔))
继续畅通工程 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- hdu 1879 继续畅通工程
/************************************************************************/ /* hdu 1879 继续畅通工程 Time L ...
- hdu 1879 继续畅通工程 (并查集+最小生成树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1879 继续畅通工程 Time Limit: 2000/1000 MS (Java/Others) ...
- hdu 1233 还是畅通工程 (prim, kruskal)
还是畅通工程Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- HDU 1874 畅通工程续(模板题——Floyd算法)
题目: 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多.这让行人很困扰 ...
- HDU 1879 继续畅通工程(最小生成树)
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经 ...
- hdu 1879 继续畅通工程 (最小生成树)
继续畅通工程 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDU 1879 继续畅通工程(Kruskra)
继续畅通工程 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- (step6.1.1)hdu 1879(继续畅通工程——最小生成树、kruscal)
题目大意:输入一个整数n,表示有n个村庄.在接下来的n(n-1)/2行中,每行有4个整数begin end weight flag.分别表示从begin到end之间可以连通 ,他们之间的费用为w ...
随机推荐
- nagios监控mysql
在nagios上部署check_mysql_health 监控mysql 博客分类: 架构 本监控为基于nagios服务器主动监控方法,利用check_mysql_health实现多种监控模式: ...
- unix:/tmp/php-cgi.sock
为什么要用unix:/tmp/php-cgi.sock,最主要的特征就是unix socket比tcp快,当网站流量大的时候,服务器的优化是分毫必争的. 当我们用php-fpm来管理我们的php启动时 ...
- Maven 环境变量设置
下载Maven 官方下载地址:http://maven.apache.org/download.html 选择你所希望下载的版本,并保存到常用安装目录.这里以Maven 3.2.2 (Binary z ...
- GIT+ Coding使用方法
1 进入码市 :https://coding.net 注册一个账户 2 创建一个项目: 3 本地window环境.安装git : https://git-scm.com/download/win ...
- 标准web浏览器的组件
浏览器基本上包括如下几个组件 1.HTML.XML.CSS.JavsScript解析器 2.Layout 3.文字和图形渲染 4.图像解码 5.GPU交互 6.网络访问 7.硬件加速
- jquery类似方法的比较(三)
属性选择器 1.$("div[class|='test']")可以选择 class为test的div 和 class以“test-”开头的div. 2.$("div[cl ...
- 以前做的H5推广小游戏(活动及派发奖品形式)
润百颜 1 微信授权登录,获取用户openid.一个openid一次抽奖机会,该openid用户多次玩游戏抽奖,仍然是相同的优惠码. 2 游戏结束抽奖,100%中奖,获得优惠码.优惠码和openid保 ...
- cocos2dx3.1从零学习(二)菜单、场景切换、场景传值
转:http://www.it165.net/pro/html/201406/16195.html 回顾一下上一篇的内容,我们已经学会了创建一个新的场景scene,添加sprite和label到层中, ...
- HDCMS做异步加载!
控制器的写法: //ajax 请求新闻列表 public function ajaxnewsList(){ $data = Q('sum'); $newsList = M('xinwen')-> ...
- angularJS指令系统---Directive
指令:Directive angularJS 有一套完整的,可拓展的,用来帮助web应用开发的指令集: 在建立DOM期间,和HTML关联着的指令会被检测到,并被执行: 在angularJS中将前缀为 ...