题目:http://acm.hdu.edu.cn/showproblem.php?pid=1233

可以用Kruskal来做,不过当图的边比较稠密的时候用prime会更快一些。

AC代码:296MS

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int inf=0xffffff;
int dis[105],sum,n;
int weight[105][105];
void prime()
{
bool visit[105];
int pre[105];
memset(visit,0,sizeof(visit));
for(int i=1;i<=n;i++)
{dis[i]=weight[1][i];pre[i]=1;}
visit[1]=1;
int index,mmin;
for(int i=1;i<=n-1;i++)
{
mmin=inf;
for(int j=1;j<=n;j++)
{
if(!visit[j] && dis[j]<mmin)
{
mmin=dis[j];
index=j;
}
}
visit[index]=1;
sum+=weight[pre[index]][index];
for(int i=1;i<=n;i++)
{
if(!visit[i] && weight[index][i]<dis[i])
{
dis[i]=weight[index][i];
pre[i]=index;
}
}
}
}
int main()
{ while(scanf("%d",&n))
{
if(n==0)break;
int m=n*(n-1)/2;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
weight[i][j]=inf;
for(int i=0;i<m;i++)
{
int x,y,z;
scanf("%d %d %d",&x,&y,&z);
weight[x][y]=z;
weight[y][x]=z;
}
sum=0;
prime();
cout<<sum<<endl;
}
}

hdoj 1233 还是畅通工程---最小生成树---prime算法的更多相关文章

  1. HDU 1233.还是畅通工程-最小生成树(Prime)

    还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  2. hdoj 1863 畅通工程 最小生成树---prime算法

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=1863 注意有可能出现无法生成树的情况. #include <iostream> #inclu ...

  3. hdoj 1233 还是畅通工程(最小生成树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1233 思路分析:该问题为最小生成树问题,使用kruskal算法或者prim算法即可解决: 代码如下: ...

  4. Kruskal HDOJ 1233 还是畅通工程

    题目传送门 /* 最小生成树之kruskal算法--并查集(数据结构)实现 建立一个结构体,记录两点和它们的距离,依照距离升序排序 不连通就累加距离,即为最小生成树的长度 */ #include &l ...

  5. HDU 1233 还是畅通工程(Kruskal算法)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1233 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)   ...

  6. hdu 1233(还是畅通project)(prime算法,克鲁斯卡尔算法)(并查集,最小生成树)

    还是畅通project Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  7. hdu 1233 还是畅通工程 最小生成树(prim算法 + kruskal算法)

    还是畅通工程                                                                            Time Limit: 4000/2 ...

  8. Hdoj 1233.还是畅通工程 题解

    Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直 ...

  9. HDU 1233 还是畅通工程 (最小生成树)

    还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

随机推荐

  1. Asp.net core与golang web简单对比测试

    最近因为工作需要接触了go语言,又恰好asp.net core发布RC2,就想简单做个对比测试. 下面是测试环境: CPU:E3-1230 v2 内存:16G 电脑有点不给力 操作系统:Centos7 ...

  2. ImageView加ImageSwitch制作图片浏览器

    Main /** 图片浏览器*/public class MainActivity extends Activity implements ViewFactory{private Gallery ga ...

  3. APMServ5.2.6升级PHP

    前言:这两天闲着没事,就想学一下ThinkPHP.学习ThinkPHP要先安装好Apache.MySQL .PHP等运行环境. 为了方便起见,打算就用集成环境.ThinkPHP官方网站推荐的是“WAM ...

  4. DbUtility-查询DataTable

    直接上源码 using System; using System.Data; using System.Threading.Tasks; using DbUtility; namespace Test ...

  5. 如何让多个Activity共用一个Menu

    我们可以定义一个自己的CommActivity继承自Activity,然后让每个自定义Activity继承CommActivity,就可以做到. 例如: public class CommActivi ...

  6. C++ 智能指针auto_ptr

    template<class T> class auto_ptr { public: ); // Item M5 有“explicitfor”// 的描述 template<clas ...

  7. Changing a Service's Configuration

    Changing a Service's Configuration   A service configuration program uses the ChangeServiceConfig an ...

  8. POJ1743---Musical Theme (后缀数组+二分)

    题意 :求最长不相交重复子串的长度.. 可以先求出LCP,,对于长度 二分出答案..(竟然不会写二分) #include <set> #include <map> #inclu ...

  9. UVALive 6525 Attacking rooks 二分匹配 经典题

    题目链接:option=com_onlinejudge&Itemid=8&page=show_problem&problem=4536">点击打开链接 题意: ...

  10. 飞行模式下不让打开FM

     android 判断手机当前是否是飞行模式,在AirplaneModeEnabler中 提供了isAirplaneModeOn方法来判断当前是否是Airplane mode:public stati ...