problem

solution

codes

//MST-Prim-贪心-堆优化
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn = 110;
//Graph
int e[maxn][maxn],ans;
//Prim
struct node{int v, w;node(int v=0, int w=0):v(v),w(w){}bool operator < (node b)const{return w>b.w;}
};
priority_queue<node>q;//保存所有可以抵达生成树的边
int book[maxn];
//main
int main(){ios::sync_with_stdio(false);int n;  cin>>n;for(int i = 1; i <= n; i++)for(int j = 1; j <= n; j++)cin>>e[i][j];//将1号顶点加入生成树book[1] = 1;for(int i = 1; i <= n; i++)if(e[1][i])q.push(node(i,e[1][i]));//将剩余的n-1个点加入生成树for(int i = 2; i <= n; i++){//找到所有(与生成树相连的)点里面到生成树距离最短的node t = q.top();  q.pop();while(book[t.v]){//只有不在生成树里的点才可以加到生成树里面,这里避免重复。t = q.top();  q.pop();}//将该点加入生成树book[t.v] = 1;  ans += t.w;//用该点的出边松弛其他非生成树点到生成树的距离for(int j = 1; j <= n; j++)if(!book[j] && e[t.v][j])//当前加入生成树的点可以扩充出的边指向的节点q.push(node(j,e[t.v][j]));}cout<<ans<<"\n";return 0;
}
//MST-Kruskal-排序贪心+并查集
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long LL;
const int maxn = 110;
//Graph
struct Edge{int u, v, w;Edge(int u=0, int v=0, int w=0):u(u),v(v),w(w){}bool operator < (Edge b)const{return w<b.w;}
};
vector<Edge>e;//边数不确定用vector
//UnionFindSet
int fa[maxn];
void init(int n){for(int i=1;i<=n;i++)fa[i]=i;}
int find(int x){return x==fa[x]?x:fa[x]=find(fa[x]);}
void merge(int x,int y){x=find(x);y=find(y);if(x!=y)fa[x]=y;}
//main
int main(){int n;  cin>>n;//从邻接矩阵中提取边for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++){int x;  cin>>x;if(j >= i)continue;e.push_back(Edge(i,j,x));}}sort(e.begin(),e.end());LL ans = 0;init(n);for(int i = 0; i < e.size(); i++){int u = e[i].u, v = e[i].v;if(find(u) != find(v)){merge(u,v);ans += e[i].w;}}cout<<ans<<"\n";return 0;
}

【codevs1078】最小生成树相关推荐

  1. 最小生成树,回忆复习篇。

    最小生成树,回忆复习篇. 以前听过一遍最小生成树,可惜,当时没弄会.过了几天就全忘了.而如今在做LCA的时候,woc我居然不会最小生成树了. 所以来回忆一下最小生成树. kruskal算法.这个算法的 ...

  2. 【from zero to zero】noip2017

    from zero to zero 洛谷首页的倒计时不知道什么时候就变成了六字开头. 到底还是太弱了. 生病又拖了很多的时间. 听了很多的算法,自己写起来却非常困难. 也许要在累倒前做一些事情呢. 从 ...

  3. 【codevs1078】最小生成树,prim算法

    最小生成树 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起 ...

  4. 数据结构与算法(7-3)最小生成树(普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法)

    目录 一.最小生成树简介 二.普里姆算法(Prim) 1.原理 2.存储 2-1.图顶点和权: 2-3. 最小生成树: 3.Prim()函数 3-1.新顶点入树 3-2.保留最小权 3-3. 找到最小 ...

  5. [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)

    L - 还是畅通工程 题目链接:https://vjudge.net/contest/66965#problem/L 题目: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府&qu ...

  6. 图的算法专题——最小生成树

    概要: Prim算法 Kruskal算法 1.Prim算法 算法流程: (1)对图G(V,E)设置集合S来存放已被并入的顶点,然后执行n次(2)(3) (2)每次从未并入顶点集合中选择与集合S最近的一 ...

  7. 【BZOJ1016】【Luogu P4208】 [JSOI2008]最小生成树计数 最小生成树,矩阵树定理

    蛮不错的一道题,遗憾就遗憾在数据范围会导致暴力轻松跑过. 最小生成树的两个性质: 不同的最小生成树,相同权值使用的边数一定相同. 不同的最小生成树,将其都去掉同一个权值的所有边,其连通性一致. 这样我 ...

  8. Educational Codeforces Round 9 F. Magic Matrix 最小生成树

    F. Magic Matrix 题目连接: http://www.codeforces.com/contest/632/problem/F Description You're given a mat ...

  9. [vijos1234]口袋的天空最小生成树

    题目链接:https://vijos.org/p/1234 白天刚刚写完prim的算法,晚上就心血来潮的打了一道最小生成树的题 虽然有题解说可以用prim做,但是这道题明显是加最小的边,感觉krusk ...

最新文章

  1. oracle撤销管理的方法,Oracle9i中利用自动撤销管理的优点
  2. 在reader中勾选pdf复选框_Adobe Acrobat和Reader PDF文件处理缓冲区溢出漏洞
  3. lisp中怎样调取图形_越玩越聪明的图形思维游戏
  4. eclipse中启动tomcat的项目路径
  5. 开源代码motion
  6. CentOs7下Zabbix安装教程——zabbix agent安装和前端配置
  7. 如何设置.net控件SplitContainer平均分配
  8. PFC2D学习笔记——geometry的使用
  9. 〖强暴贴〗号称全国最大开发者网络的CSDN多次出现低级错误 验证码形同虚设 开发人员竟是MVP
  10. selenium自动化购买火车票+存储数据库
  11. python request 淘宝评论数据简易爬虫
  12. github帐户和仓库的创建
  13. 人工智能时代:人人会编程、程序员年龄越来越年轻化了
  14. Java中mongodb指定DB通过aggregate聚合查询操作示例
  15. cad lisp 两侧偏移并删除_cad lisp 两侧偏移并删除_知道这些技巧-轻松攻克CAD所有困难...
  16. lr1分析器c语言实验报告怎么写,编译原理课程的设计构造LR分析法语法分析器.doc...
  17. 凤凰新闻 android,凤凰新闻app正式版
  18. 信息熵、自信息与互信息
  19. springBoot项目中Graphics2D在linux上使用Font字体出现乱码或者中文字无法显示的问题
  20. PCA分析及CNS级别作图

热门文章

  1. 同义反复,相似的表达
  2. windows 用户管理
  3. python采集文章_用python采集文章保存到wordpress
  4. python怎么读取excel-python怎么读取excel表格
  5. python代码写好了怎么运行-教你如何编写、保存与运行 Python 程序
  6. python有什么用-我们为什么要选择学习python?学习python有什么用?
  7. python 计算机程序设计-程序设计入门—Python
  8. 学python有前途吗-Python全栈开发有前景吗,是否值得学习?
  9. libreoffice 开发文档_LibreOffice中文 | linux软件
  10. java 类.class_Java 反射之根基 Class 类