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 ...
随机推荐
- UVA5874 Social Holidaying 二分匹配
二分匹配简单题,看懂题意,建图比较重要. #include<stdio.h> #include<string.h> #define maxn 1100 int map[maxn ...
- hdu3613 扩展KMP
#include<stdio.h> #include<string.h> #define maxn 501000 char s[maxn],t[maxn]; int next[ ...
- codeforces 715B:Complete The Graph
Description ZS the Coder has drawn an undirected graph of n vertices numbered from 0 to n - 1 and m ...
- Aho-Corasick算法、多模正则匹配、Snort入门学习
希望解决的问题 . 在一些高流量.高IO的WAF中,是如何对规则库(POST.GET)中的字符串进行多正则匹配的,是单条轮询执行,还是多模式并发执行 . Snort是怎么组织.匹配高达上千条的正则规则 ...
- C#获取本机IP且过滤非真实网卡(如虚拟机网卡)
参考了网上的文章,具体地址不记得了. 下面的方法可以过滤掉虚拟机的网卡等无效网卡,进而只留下真实的网卡. using System; using System.Collections.Generic; ...
- easyloader.js源代码分析
http://www.cnblogs.com/jasonoiu/p/easyloader_source_code_analysis.html Jquery easyui是一个javascript UI ...
- 架构(Architecture)和框架(Framework)杂谈
1. 架构和框架的设计层次不同 类似于硬件设计,软件设计也分为不同的层次.典型的软件设计层次如下图: 在这个图中我们可以看到,Framework处于Micro-archite ...
- angularJS学习1
<!DOCTYPE html><html ng-app><head> <script src="http://code.angularjs.org/ ...
- TP中二维数组的遍历输出
例子分析 <volist name="list" id="vo"> <volist name="vo['sub']" id ...
- Java初学(三)
一.使用键盘录入数据 三步:1.导入包:import java.util.Scanner; 2.创建键盘录入对象:Scanner sc=new Scanner(System.in); 3.通过 ...