#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的更多相关文章

  1. HDOJ 2682 Tree(最小生成树prim算法)

    Tree Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. 最小生成树(HDOJ 1863)

    畅通工程 http://acm.hdu.edu.cn/showproblem.php?pid=1863 1.Prim算法: Prim算法是由一个点(最初的集合)向外延伸,找到与集合相连权值最小的边, ...

  3. Kruskal HDOJ 1863 畅通工程

    题目传送门 /* 此题为:HDOJ 1233 + HDOJ 1232 */ #include <cstdio> #include <algorithm> #include &l ...

  4. 1.1.2最小生成树(Kruskal和Prim算法)

    部分内容摘自 勿在浮沙筑高台 http://blog.csdn.net/luoshixian099/article/details/51908175 关于图的几个概念定义: 连通图:在无向图中,若任意 ...

  5. MST(最小生成树)——Prim算法——HDU 1879-继续畅通工程

    Prim算法很好理解,特别是学完了迪杰斯特拉算法之后,更加能理解Prim的算法思想 和迪杰斯特拉算法差不多,由于最后要形成连通图,故任意指定一个点,作为初始点,遍历所有点,以当前最小权值的点(和迪杰斯 ...

  6. 图的生成树(森林)(克鲁斯卡尔Kruskal算法和普里姆Prim算法)、以及并查集的使用

    图的连通性问题:无向图的连通分量和生成树,所有顶点均由边连接在一起,但不存在回路的图. 设图 G=(V, E) 是个连通图,当从图任一顶点出发遍历图G 时,将边集 E(G) 分成两个集合 T(G) 和 ...

  7. 最小生成树のprim算法

    Problem A Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Sub ...

  8. 数据结构代码整理(线性表,栈,队列,串,二叉树,图的建立和遍历stl,最小生成树prim算法)。。持续更新中。。。

    //归并排序递归方法实现 #include <iostream> #include <cstdio> using namespace std; #define maxn 100 ...

  9. 最小生成树——prim算法

    prim算法是选取任意一个顶点作为树的一个节点,然后贪心的选取离这棵树最近的点,直到连上所有的点并且不够成环,它的时间复杂度为o(v^2) #include<iostream>#inclu ...

随机推荐

  1. EntityFramework_MVC4中EF5 新手入门教程之一 ---1.创建实体框架数据模型

    Contoso University  Web 应用程序 你会在这些教程中构建的应用程序是一个简单的大学网站. 用户可以查看和更新学生. 课程和教师信息.这里有几个屏幕,您将创建. 这个网站的用户界面 ...

  2. HTML5——同步购物车

    同步购物车,及打开两个或多个界面,选择购物时同步,让显示的内容一致,这样不至于购买出错. 核心:利用storage事件和localStorage本地存储实现 图片简单展示: <!DOCTYPE ...

  3. LCA最近公共祖先 Tarjan离线算法

    学习博客:  http://noalgo.info/476.html 讲的很清楚! 对于一颗树,dfs遍历时,先向下遍历,并且用并查集维护当前节点和父节点的集合.这样如果关于当前节点(A)的关联节点( ...

  4. 【CodeForces 618B】Guess the Permutation

    题 题意 有个1到n的一个全排列,告诉你第i个数和全部n个数相比的较小的是哪个,和自己相比时为0,于是有个主对角线为0的矩阵,求原数列 分析 我的想法是,给我们的每一行之和按大小排一下,就知道第i个数 ...

  5. 【POJ 1061】青蛙的约会

    题 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要 ...

  6. config 写入

    d代码: # __author__ = liukun # coding:utf-8 line = input("please input the config \n :") #提示 ...

  7. java 中LinkedList的学习

    Java中,所有链表实际上都是双向链表的,即每个结点还存放在着指向前驱结点的引用. LinkedList中的contains方法检测某个元素是否出现在链表中. LinkedList类提供了一个用来访问 ...

  8. POJ2531Network Saboteur(DFS+剪枝)

    Network Saboteur Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10391   Accepted: 4990 ...

  9. Linux系统如何查看版本信息

    输入"uname -a ",可显示电脑以及操作系统的相关信息.   输入"cat /proc/version",说明正在运行的内核版本.   输入"c ...

  10. Spring学习8-Spring事务管理(AOP/声明式式事务管理)

    一.基础知识普及 声明式事务的事务属性: 一:传播行为 二:隔离级别 三:只读提示 四:事务超时间隔 五:异常:指定除去RuntimeException其他回滚异常.  传播行为: 所谓事务的传播行为 ...