题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1102

prim:

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cctype>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <sstream>
#include<iomanip>
using namespace std;
typedef long long ll;
#define REW(a,b) memset(a,b,sizeof(a))
#define inf int(0x3f3f3f3f)
#define mod int(1e9+7)
#define P pair<int,int>
#define pi acos(-1)
int n,a[108][108],d[108],x;
bool c[108];
int main()
{ios::sync_with_stdio(false);cin.tie(0);while(cin>>n){REW(c,true);REW(d,inf);REW(a,0);ll s=0;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++) cin>>a[i][j];cin>>x;while(x--){int y,z;cin>>y>>z;a[y][z]=a[z][y]=0;}c[1]=false;for(int i=1;i<=n;i++) d[i]=a[1][i];for(int i=1;i<=n;i++){int q=inf+10,qq=0,tt=0;for(int j=1;j<=n;j++)if(c[j]&&q>d[j]) q=d[j],qq=j,tt++;c[qq]=false;if(tt) s+=q;for(int j=1;j<=n;j++)if(c[j]) d[j]=min(d[j],a[qq][j]);}cout<<s<<endl;}return 0;
}

kruskal:

#include <cstdio>
#include <cstdlib>
#include <cassert>
#include <cstring>
#include <bitset>
#include <cmath>
#include <cctype>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <sstream>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef vector<long long> VI;
typedef unsigned long long ull;
const ll inff = 0x3f3f3f3f3f3f3f3f;
#define FOR(i,a,b) for(int i(a);i<=(b);++i)
#define FOL(i,a,b) for(int i(a);i>=(b);--i)
#define SZ(x) ((long long)(x).size())
#define REW(a,b) memset(a,b,sizeof(a))
#define inf int(0x3f3f3f3f)
#define si(a) scanf("%d",&a)
#define sl(a) scanf("%lld",&a)
#define sd(a) scanf("%lf",&a)
#define ss(a) scanf("%s",a)
#define mod ll(1e9+7)
#define pb push_back
#define eps 1e-6
#define lc d<<1
#define rc d<<1|1
#define Pll pair<ll,ll>
#define P pair<int,int>
#define pi acos(-1)
struct as{
int u,v,d;}a[10008];
int n,fa[108];
bool cmp(as a,as b) {return a.d<b.d;}
int fid(int x)
{int a=x,b;while(a!=fa[a]) a=fa[a];while(x!=fa[x]) b=fa[x],fa[x]=a,x=b;return a;
}
int main()
{cin.tie(0);cout.tie(0);while(cin>>n){int qw=0,ans=0,x;FOR(i,1,n)FOR(j,1,n){si(x);if(i>j) a[++qw].u=j,a[qw].v=i,a[qw].d=x;}FOR(i,1,n) fa[i]=i;sort(a+1,a+qw+1,cmp);cin>>x;while(x--){int y,z,fy,fz;si(y),si(z);fy=fid(y);fz=fid(z);if(fy==fz) continue;fa[fy]=fz;}FOR(i,1,qw){int fx=fid(a[i].u),fy=fid(a[i].v);if(fx==fy) continue;fa[fx]=fy;ans+=a[i].d;}cout<<ans<<endl;}return 0;
}

prim和kruskal相关推荐

  1. 生成树的概念,最小生成树Prim算法 Kruskal算法

    求解最小生成树可以用Prim算法 Kruskal算法

  2. 最小生成树(Prim、Kruskal)算法,秒懂!

    前言 在数据结构与算法的图论中,(生成)最小生成树算法是一种常用并且和生活贴切比较近的一种算法.但是可能很多人对概念不是很清楚,什么是最小生成树? 一个有 n 个结点的连通图的生成树是原图的极小连通子 ...

  3. dijkstra算法_Python实现图的经典DFS、BFS、Dijkstra、Floyd、Prim、Kruskal算法

    讲在前面的话,图的算法太多,理论知识肯定一篇文章讲不完,关于理论知识大家可以参考教材Sedgewick的<算法>或reference的链接,本文主要还是想在一篇文章中记录六种算法的Pyth ...

  4. 用Prim和Kruskal两种算法,求解最小生成树

    本文通过具体的算法模板题,给出Prim和Kruskal两种求解最小生成树求解过程和代码~ 由浅入深,通俗易懂 题目选自洛谷P3366 题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则 ...

  5. dfs时间复杂度_Python实现图的经典DFS、BFS、Dijkstra、Floyd、Prim、Kruskal算法

    讲在前面的话,图的算法太多,理论知识肯定一篇文章讲不完,关于理论知识大家可以参考教材Sedgewick的<算法>或reference的链接,本文主要还是想在一篇文章中记录六种算法的Pyth ...

  6. 数据结构(六):图的概念、存储方式、基本操作、最小生成树、最短路径、有向无环图、关键路径 | Prim、Kruskal算法 | BFS、Dijkstra、Floyd算法 | 拓扑排序 | 求关键路径

    文章目录 第六章 图 一.图 (一)图的定义 (二)图逻辑结构的应用 (三)无向图.有向图 (四)简单图.多重图 (五)顶点的度.入度.出度 (六)顶点-顶点的关系描述 (七)连通图.强连通图 (八) ...

  7. 常用十大算法 非递归二分查找、分治法、动态规划、贪心算法、回溯算法(骑士周游为例)、KMP、最小生成树算法:Prim、Kruskal、最短路径算法:Dijkstra、Floyd。

    十大算法 学完数据结构该学什么?当然是来巩固算法,下面介绍了十中比较常用的算法,希望能帮到大家. 包括:非递归二分查找.分治法.动态规划.贪心算法.回溯算法(骑士周游为例).KMP.最小生成树算法:P ...

  8. Prim和Kruskal算法应用----城市水管连接

    Prim和Kruskal算法应用----城市水管连接 问题描述: Description: 现在有n个城镇,编号为1, 2, 3, 4-n.他们之间有m条互通的道路,每条道路有相应的长度,现在基于这些 ...

  9. 【图解】Prim和Kruskal算法的区别

    [贪心]Prim和Kruskal算法的区别 Kruskal算法和Prim算法的优劣 Kruskal算法,相较于Prim算法是基于点的操作,Kruskal算法是基于边的操作,思想也比Prim简单,更容易 ...

  10. 可视化最小生成树Prim、Kruskal

    代码下载链接:(41条消息) 可视化最小生成树Kruskal,DEV配EGE-C文档类资源-CSDN文库 代码下载链接:(41条消息) 可视化最小生成树Prim,DEV配EGE-C文档类资源-CSDN ...

最新文章

  1. Oracle数据库迁移-基础
  2. Python爬取猪肉价格网并获取Json数据
  3. javafx打包路径问题_关于JavaFX的最常见问题
  4. jq 自动滑动轮换(向后插入小块)
  5. 那些年收藏的技术文章(一) CSDN篇
  6. Java Web学习总结(31)——全站HTTPS化SSL免费证书使用
  7. 转 天才学生的天才回答
  8. java静态类_Java静态类
  9. 论计算机的发展.doc,计算机的发展论文.doc
  10. SQL 删除重复数据,只保留一行
  11. mate7 刷机 android 7,华为Mate7如何刷机 华为Mate7详细root刷机教程
  12. CAN协议要点及车辆CAN协议破解
  13. 面向大规模商业系统的数据库设计和实践
  14. 关于开源框架GPUImage 的简单说明
  15. 2020年王者荣耀怎么设置英雄装备
  16. java 民族_java简历 五年
  17. iptables匹配功能length
  18. 维数定理(手推!):证明dim(v1)+dim(v2) = dim(v1+v2) + dim(v1∩v2)
  19. 爬虫快速入门(一):静态页面爬取
  20. 火山PC使用百度OCR接口识别文字

热门文章

  1. 电路基础知识之什么是共模电感/共模信号/差分信号?
  2. 分布式事务解决方案(总览)
  3. C盘莫名其妙就满了怎么办?
  4. 免费UI色彩搭配素材资源|色卡帮你找准搭配技巧
  5. PAT 7-5 哥尼斯堡的“七桥问题” (25 分)(解题报告)
  6. 关于mysql彻底卸除问题
  7. 4.28 前端开发日报
  8. Autofac的基本使用
  9. pyqt创建窗口没有句柄_史上最强之《Pyqt》写游戏
  10. js全屏事件,进入全屏,退出全屏操作