HDOJ 1863 prim算法 HDOJ 1879
#include<cstdio>
#include<cstring>
#define inf 0xffffff
int g[][];
int ans;
void prim(int n)
{
int lowcost[],used[],i,j,k,min,closet[];
memset(used,,sizeof(used));
for(i=;i<=n;i++)
lowcost[i]=g[i][],closet[i]=;
used[]=;
for(i=;i<n;i++)
{
j=;
min=inf;
for(k=;k<=n;k++)
{
if(lowcost[k]<min&&!used[k])
min=lowcost[k],
j=k;
}
ans+=g[j][closet[j]];
used[j]=;
for(k=;k<=n;k++)
{
if(g[k][j]<lowcost[k]&&!used[k])
lowcost[k]=g[k][j],
closet[k]=j;
}
} }
int main()
{
int m,n;
while(scanf("%d %d",&m,&n)!=EOF&&m)
{
int i,j;
ans=;
for(i=;i<=n;i++)
for(j=;j<=n;j++)
g[i][j]=inf;
int a,b,t;
for(i=;i<=m;i++)
{
scanf("%d %d %d",&a,&b,&t);
if(g[a][b]>t)
g[a][b]=g[b][a]=t;
}
if(m<n-)
printf("?\n");
else
{
prim(n);
if(ans>=inf)
printf("?\n");
else
printf("%d\n",ans);
}
} return ;
}
9896382 | 2013-12-26 16:56:48 | Accepted | 1863 | 0MS | 296K | 989 B | C++ | 泽泽 |
1879
9896417 | 2013-12-26 17:03:42 | Accepted | 1879 | 234MS | 300K | 934 B | C++ | 泽泽 |
#include<cstdio>
#include<cstring>
#define inf 0xffffff
int g[][];
int ans;
void prim(int n)
{
int lowcost[],used[],i,j,k,min,closet[];
memset(used,,sizeof(used));
for(i=;i<=n;i++)
lowcost[i]=g[i][],closet[i]=;
used[]=;
for(i=;i<n;i++)
{
j=;
min=inf;
for(k=;k<=n;k++)
{
if(lowcost[k]<min&&!used[k])
min=lowcost[k],
j=k;
}
ans+=g[j][closet[j]];
used[j]=;
for(k=;k<=n;k++)
{
if(g[k][j]<lowcost[k]&&!used[k])
lowcost[k]=g[k][j],
closet[k]=j;
}
} }
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n)
{
int i,j;
ans=;
for(i=;i<=n;i++)
for(j=;j<=n;j++)
g[i][j]=inf;
int a,b,t;
for(i=;i<=n*(n-)/;i++)
{
scanf("%d %d %d %d",&a,&b,&t,&j);
if(g[a][b]>t&&j==)
g[a][b]=g[b][a]=t;
else if(j==)
g[a][b]=g[b][a]=;
}
prim(n);
printf("%d\n",ans);
} return ;
}
HDOJ 1863 prim算法 HDOJ 1879的更多相关文章
- HDOJ 2682 Tree(最小生成树prim算法)
Tree Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 最小生成树(HDOJ 1863)
畅通工程 http://acm.hdu.edu.cn/showproblem.php?pid=1863 1.Prim算法: Prim算法是由一个点(最初的集合)向外延伸,找到与集合相连权值最小的边, ...
- Kruskal HDOJ 1863 畅通工程
题目传送门 /* 此题为:HDOJ 1233 + HDOJ 1232 */ #include <cstdio> #include <algorithm> #include &l ...
- 1.1.2最小生成树(Kruskal和Prim算法)
部分内容摘自 勿在浮沙筑高台 http://blog.csdn.net/luoshixian099/article/details/51908175 关于图的几个概念定义: 连通图:在无向图中,若任意 ...
- MST(最小生成树)——Prim算法——HDU 1879-继续畅通工程
Prim算法很好理解,特别是学完了迪杰斯特拉算法之后,更加能理解Prim的算法思想 和迪杰斯特拉算法差不多,由于最后要形成连通图,故任意指定一个点,作为初始点,遍历所有点,以当前最小权值的点(和迪杰斯 ...
- 图的生成树(森林)(克鲁斯卡尔Kruskal算法和普里姆Prim算法)、以及并查集的使用
图的连通性问题:无向图的连通分量和生成树,所有顶点均由边连接在一起,但不存在回路的图. 设图 G=(V, E) 是个连通图,当从图任一顶点出发遍历图G 时,将边集 E(G) 分成两个集合 T(G) 和 ...
- 最小生成树のprim算法
Problem A Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Sub ...
- 数据结构代码整理(线性表,栈,队列,串,二叉树,图的建立和遍历stl,最小生成树prim算法)。。持续更新中。。。
//归并排序递归方法实现 #include <iostream> #include <cstdio> using namespace std; #define maxn 100 ...
- 最小生成树——prim算法
prim算法是选取任意一个顶点作为树的一个节点,然后贪心的选取离这棵树最近的点,直到连上所有的点并且不够成环,它的时间复杂度为o(v^2) #include<iostream>#inclu ...
随机推荐
- Linq之隐式类型、自动属性、初始化器、匿名类
目录 写在前面 系列文章 隐式类型 自动属性 初始化器 匿名类 总结 写在前面 上篇文章是本系列的小插曲,也是在项目中遇到,觉得有必要总结一下,就顺手写在了博客中,也希望能帮到一些朋友.本文将继续介绍 ...
- 每天一个linux命令(37):free 命令
free命令可以显示Linux系统中空闲的.已用的物理内存及swap内存,及被内核使用的buffer.在Linux系统监控的工具中,free命令是最经常使用的命令之一. 1.命令格式: free [参 ...
- rational rose USE CASE
- u1-nav-js
'use strict';define([ 'jquery'], function($) { var nav = { init : function() { $("#burger-menu& ...
- Canvas识别相似图片
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Spring MVC设计模式
MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器 使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如一批统计数据可以分别用柱状图.饼图来 ...
- linux 问答
问:1 如何查看当前的Linux服务器的运行级别? 答: ‘who -r’ 和 ‘runlevel’ 命令可以用来查看当前的Linux服务器的运行级别. 问:2 如何查看Linux的默认网关? 答: ...
- MyEclipse10中导入的jquery文件报错(出现红叉叉,提示语法错误)
为了做一个页面特效,导入了一个jQuery文件,怎想,myeclipse竟然报错说是语法错误,但是这个js文件我是从官网上下载的,不应该出错才对,百度谷歌之后终于找到了解决办法: 选中报错的js文件, ...
- CSU 1113 Updating a Dictionary
传送门 Time Limit: 1000MS Memory Limit: 131072KB 64bit IO Format: %lld & %llu Description In th ...
- kaili linux中文乱码
install kaili 用了kali,安装的英文版,一切都很爽,没有乱码 install chrome 不要用apt安装,也不要用chromium, 直接去网上找chrom的deb文件下来安装,注 ...