一个很简单的prim模板,但虽然是模板,但也是最基础的,也要脱离模板熟练打出来

后期会更新kruskal写法

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int maxn = 1000;
const int INF = 0x3f3f3f3f;//int型最大值
int Map[maxn][maxn],vis[maxn];
int n,dis[maxn],ans;void init(){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(i==j)Map[i][j]=0;else Map[i][j]=INF;}}ans=0;memset(vis,0,sizeof(vis));
}void input(){int u,v,w;for(int i=0;i<n*(n-1)/2;i++){scanf("%d%d%d",&u,&v,&w);if(Map[u][v]>w)Map[u][v]=Map[v][u]=w;}
}int prim(){for(int i=1;i<=n;i++){dis[i]=Map[1][i];}vis[1]=1;for(int i=1;i<n;i++){int MIN=INF,x=-1;for(int j=1;j<=n;j++){if(!vis[j]&&dis[j]<MIN){//每一次都取该结点和其他相邻的结点的最小值 MIN=dis[j];x=j;}}if(x==-1)return -1;ans+=MIN;vis[x]=1;//标记已经过的节点 for(int j=1;j<=n;j++){if(!vis[j]&&dis[j]>Map[x][j]){//更新dis数组, dis[j]=Map[x][j];}}}
}int main(){while(scanf("%d",&n)&&n){init();//初始化 input();//输入 prim();//关键 printf("%d\n",ans);}return 0;
} 

转载于:https://www.cnblogs.com/lived-hu/p/9838917.html

HDU 1223 还是畅通工程(最小生成树prim模板)相关推荐

  1. HDU 1863畅通工程(最小生成树)(prim算法)

    畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

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

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

  3. hdu 1879 继续畅通工程 最小生成树

    继续畅通工程                                                                             Time Limit: 2000/ ...

  4. HDU 1879 继续畅通工程 最小生成树

    继续畅通工程 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description ...

  5. 畅通工程//最小生成树prim

    题目: 畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  6. hdu 1879 继续畅通工程 (最小生成树)

    继续畅通工程 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  7. hdu 1233 还是畅通工程(最小生成树的Prim和Kruskal两种算法的c++实现)(prim算法详解)...

    赤裸裸滴最小生成树(MST),刚学的玩意,用两种方法熟练一下.(都是greedy) Kruskal方法:先对边按照代价非递减排序,再不断添加边且不产生环路,当边数=点数-1结束.判断加入(v,w)是否 ...

  8. hdu 1879 继续通畅工程(最小生成树)

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

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

    原题地址 http://acm.hdu.edu.cn/showproblem.php?pid=1233 题意:(最小生成树裸题)有N个村庄,给出村庄两两之间的距离,要求铺设公路,使得任何两个村庄间都可 ...

最新文章

  1. 情感识别难?图神经网络创新方法大幅提高性能
  2. 网易严选画像建设实践
  3. BZOJ 4244 邮戳拉力赛 (DP)
  4. java中的垃圾回收机
  5. 财务造假10年!贾跃亭被罚2.41亿
  6. 如何将用户迁移到SQL Server中的部分包含的数据库
  7. HDU1087 Super Jumping! Jumping! Jumping!【最长上升子序列+DP】
  8. 大数据第一季--Hadoop(day4)-徐培成-专题视频课程
  9. iOS 10 消息推送(UserNotifications)秘籍总结(一)
  10. Shadowmask
  11. 李开复清华演讲:为什么今天是人工智能的黄金时代?
  12. 欧美html游戏,欧美HTML社区服务游戏
  13. 多目标追踪-2019综述《Deep Learning in Video Multi-Object Tracking: A Survey》
  14. Worktile中的实时消息推送服务实现
  15. [windows 10]当前桌面壁纸的保存位置
  16. vue 报错vue : 无法加载文件 D:\wjx_tools\node\node_global\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsof
  17. 【VBA】Speech.Speak 指定语音库
  18. 数据结构:字符串 C++
  19. xcode9.4网盘资源
  20. 【金融量化】什么叫市价单、限价单和停止单?

热门文章

  1. Github排序(转载)
  2. 单行函数(数值函数)
  3. 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02)
  4. (转)goldengate 复制进程replicat出现ORA-01403 错误
  5. LINUX 第六章 Open WebMail完全安装手册
  6. html图片上加水印,css给图片添加水印
  7. 最大子序列求和_连续子序列最大和与乘积问题的分析
  8. 以下构成python循环结构的方法中_《Python程序设计与案例教程》课件chap5循环结构程序设计.ppt...
  9. python写我爱你_12个精选Python教程我的初恋故事。
  10. 笔记本电脑自带麦克风吗_想让声音变得好听吗,不花一分钱,让你的电脑拥有外置麦克风...