最小生成树 kruskal

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn = 2e5+7;
const int INF = 0x3f3f3f;
typedef pair<int,int>PII;
vector<PII>g[maxn] ;
int vis[maxn] ,fa[maxn];
struct node{int w,v,u;
}p[maxn];
bool cmp(node x,node y)
{return x.w<y.w ;
}
int n, m;
int findfa(int x)
{if(x==fa[x])return x ;else return findfa(fa[x]);
}
int  main()
{ll ans = 0 ,cnt =0 ;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)fa[i] = i;for(int i=1;i<=m;i++){scanf("%d%d%d",&p[i].u,&p[i].v,&p[i].w);}sort(p+1,p+1+m,cmp);for(int i=1;i<=m;i++){int fu = findfa(p[i].u);int fv = findfa(p[i].v);if(fu == fv)continue;ans += p[i].w ;fa[fv] = fu;if(++cnt == n-1)break;}if(cnt == n-1)printf("%lld",ans) ;else printf("orz");return 0 ;
}

最小生成树 Prim

#include<bits/stdc++.h>
using namespace std;
#define ll long longconst int maxn = 2e5+7;
const int INF = 0x3f3f3f;
typedef pair<int,int>PII;
vector<PII>g[maxn] ;
int vis[maxn],dis[maxn];
int n,m,u,v,w ;
int main()
{int cnt=0;ll ans = 0 ;scanf("%d%d",&n,&m) ;for(int i=1;i<=n;i++)dis[i]= INF;for(int i=1;i<=m;i++){scanf("%d%d%d",&u,&v,&w);g[u].push_back({v,w});g[v].push_back({u,w});}priority_queue<PII,vector<PII>,greater<PII> >  que ;dis[1] =0 ;que.push({0,1});while(!que.empty()&& cnt<n ){int val = que.top().first, nxt = que.top().second;que.pop();if(vis[nxt])continue;cnt++ ;ans+= val ;vis[nxt] =1;for(int i = 0;i<g[nxt].size();i++){int v = g[nxt][i].first;int w = g[nxt][i].second;if(dis[v]>w ){dis[v] =w;que.push({dis[v],v});}}}if(n==cnt )printf("%lld",ans);else printf("orz");return  0;
}

一天一个小算法——最小生成树(kru Prm)相关推荐

  1. 一天一个小算法的学习之选择排序

    选择排序: 其思想就是,将每个数据元素,分成有序数列和无序数列..在每次排序中找出最小的那一个数据元素并放到有序数列后面,一直到排序结束.. using System;namespace SortPr ...

  2. 大数据处理时的一种BitMap小算法

    一种大数据外部排序(内存无法加载所有排序元素).去除重复元素.快速找到随机被删除元素的BitMap小算法,核心思想即通过将一个数作为下标(index)来索引一个bit表示一个数是否存在,排序时的时间复 ...

  3. 位运算实现一些小算法

    package com.asiainfo.cem_volte_hbase;/*** @ClassName Test* @Description 有意思的小算法* @Author qianxl* @Da ...

  4. 「小算法」回文数与数值合法性检验

    喵喵喵,小夕最近准备复习一下数学和基础算法,尽量每篇推送下面会附带点数学和基础算法的小文章.说不定哪天就用(考)到了呢( ̄∇ ̄)注意哦,与头条位的文章推送不同,「小公式」和「小算法」里的小标题之间可能 ...

  5. java 如何将数字倒置_每日一个小算法之整数中每位上的数字进行反转 20190810

    题目要求: 给出一个32位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321 示例 3: 输入: 120输出 ...

  6. C语言小算法:ACSII码(多字节)和Unicode(宽字节)互转

    C语言小算法:ACSII码(多字节)和Unicode(宽字节)互转 代码: #include <Windows.h> #include <stdio.h> #include & ...

  7. C语言随笔小算法:创建双向链表

    C语言随笔小算法:创建双向链表 双向链表两个指针域!head定住,tail移动! 代码: #include "stdlib.h" #include "stdio.h&qu ...

  8. C语言随笔小算法:单项链表如何实现队列

    C语言随笔小算法:单项链表如何实现队列 参考链接: https://blog.csdn.net/u012895183/article/details/81914767 代码:

  9. C语言随笔小算法:char字节流与结构体变量相互转换

    C语言随笔小算法:char字节流与结构体变量相互转换 代码: /* **数据域 */ typedef struct {kal_uint8 bt_dpacket_data_total_num; //(可 ...

  10. C语言随笔小算法:单向链表

    C语言随笔小算法:单向链表 参考链接: 代码参考:https://blog.csdn.net/go_sann/article/details/80508284 原理参考:https://blog.cs ...

最新文章

  1. 静态类和非静态类中静态变量
  2. 万字长文重新解剖产品经理(内含大量图片)
  3. 给opentaps添加定制的表和字段
  4. android 立体 流量球,Android自定义View——实现水波纹效果类似剩余流量球
  5. html中的容器和语义标签
  6. 关于collectionview布局的坑
  7. jenkins执行bat失败_关于批处理文件:即使在BAT脚本中成功执行了ROBOCOPY命令,JENKINS作业也会失败...
  8. 卖一头猪亏500元,“猪茅”也扛不住了?
  9. dataloader 源码_[莫烦 PyTorch 系列教程] 3.5 – 数据读取 (Data Loader)
  10. 百度云盘卸载不干净如何处理
  11. Nginx subs_filter模块替换文本
  12. vba 汉字转拼音 -- wps office
  13. 企业微信三方开发(一):回调验证及重要参数获取
  14. 回首过去,立足当下,展望未来
  15. 嵌入式技术基础与实践(第三版)笔记
  16. 专升本-计算机公共课考点(3)——字处理软件Word 2010
  17. 物联网毕业设计 - 基于STM32的轮足两用可变形环境感知探测机器人
  18. Maven(自动化构建工具)
  19. 边缘检测之Robert算子
  20. 解决无法将这个证书验证到一个受信任的证书颁发机构方法

热门文章

  1. 软件项目管理与素质拓展-2.2什么是项目
  2. 云安全技术有什么特点?云安全包含哪些方面?
  3. java画哆啦A梦_java绘制哆啦A梦 超可爱
  4. vim 使用系统粘贴板复制粘贴
  5. js 获取伪类和css变量
  6. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON9简易测试系统
  7. 吹爆这个最近在用的 IDEA 神器
  8. 饿了么虚拟号码可以发短信吗_饿了麽APP逆向及爬虫实现详参
  9. 汽车电子嵌入式相关知识
  10. 强化学习中 on-policy与off-policy 的理解;如何区分on-policy 与 off-policy;RL更新策略、policy结构总结