图论板子dijkstra,Floyd,prime,bfs,dfs, krustral
#include<bits/stdc++.h>
using namespace std;
void bfs(){for(int i=1;i<=n;i++)v[i]=0;queue<Node> q;for(int i=1;i<=number;i++){if(!v[i]){q.push(i);while(!q.empty()){e=q.front();q.pop();for(){//遍历邻接点加入到队列中 }}}}
}
void mst_prime(){for(int i=1;i<=n;i++){cost[i]=inf;used[i]=0;}cost[1]=0;int res=0;while(1){int v=-1;for(int i=1;i<=n;i++)if(!used[i]&&(v==-1||cost[i]<cost[v]))v=i;if(v==-1)break;res+=cost[v];used[v]=1;for(u遍历v的所有邻接点)if(!used[u])cost[u]=min(cost[u],cost[v]+G[v][u]);} cout<<res;
}void kudikaer(){//设edge[]是存放边的结构体数组,一共有m条边 for(int i=1;i<=n;i++)used[i]=0;int res=0;sort(edge,edge+m);//吧边从小到大排序 for(int i=1;i<=m;i++){if(sed[edge[i].pre]==0||used[edge[i].end]==0;){used[edge[i].pre]=used[edge[i].end]=1;res+=edge[i].cost;}}cout<<res;//克鲁笛卡尔是把所有边都排一下序,然后进行最小生成树的筛选
}
void dijisitla(){//迪杰斯特拉算法:单源最短路径 (和普利姆算法差不多)for(int i=1;i<=n;i++){d[i]=inf;used[i]=0;}d[1]=0;while(1){int v=-1;for(int u=1;u<=n;u++)if(!used[i]&&(v==-1||d[u]<d[v]))v=u;if(v==-1)break;used[v]=1;for(int i=1;i<=n;i++)\d[i]=min(d[i],d[v]+G[v][i]); }for(int i=1;i<=n;i++)cout<<d[i];
}
void floyd(){//弗洛伊德五行算法。 for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
}
void dfs(int x){for(遍历x的邻接点u){if(!used[u]){used[u]=1;要进行的操作;dfs(u); } }
}
void bfs(int x){queue<Node> q;q.push(x);while(!q.empty()){Node e=q.front();q.pop();for(遍历e的邻接点){if(!used[i]){used[i];bfs要进行的操作; q.push(i); }} }
}
void monst(){for(int i=1;i<=n;i++)used[i]=0;for(int i=1;i<=n;i++)if(!used[i]){used[u]=1;要进行的操作;dfs(u); }for(int i=1;i<=n;i++)used[i]=0;for(int i=1;i<=n;i++){if(!used){bfs(i);}}
}
图论板子dijkstra,Floyd,prime,bfs,dfs, krustral相关推荐
- Algorithm:C++语言实现之图论算法相关(图搜索广度优先BFS、深度优先DFS,最短路径SPF、带负权的最短路径Bellman-ford、拓扑排序)
Algorithm:C++语言实现之图论算法相关(图搜索广度优先BFS.深度优先DFS,最短路径SPF.带负权的最短路径Bellman-ford.拓扑排序) 目录 一.图的搜索 1.BFS (Brea ...
- 深度搜索 java_java实现的深度搜索与广度搜索算法BFS,DFS以及几种最短路径算法...
java实现的深度搜索与广度搜索算法BFS,DFS以及几种最短路径算法 public class City { String name; int id; static int idCounter = ...
- 最短路问题(Bellman/Dijkstra/Floyd)
最短路问题(Bellman/Dijkstra/Floyd) 寒假了,继续学习停滞了许久的算法.接着从图论开始看起,之前觉得超级难的最短路问题,经过两天的苦读,终于算是有所收获.把自己的理解记录下来,可 ...
- 【八数码问题】基于状态空间法的知识表示与状态搜索:无信息搜索(BFS/DFS) 启发式搜索(A*)
前言 一.问题引入 二.状态空间法 1. 知识及其表示 2. 状态空间法定义 3. 问题求解 三.基于状态空间搜索法解决八数码问题 1. 八数码问题的知识表示 2. 状态空间图搜索 1. 无信息搜索 ...
- 动态规划+BFS+DFS+回溯+红黑树+排序+链表+位运算(B站优质学习资源链接,后续会继续更新)
动态规划 正月点灯笼(UP主) 个人主页 https://space.bilibili.com/24014925/channel/detail?cid=12580 动态规划第一讲 https://ww ...
- 邻结矩阵的建立和 BFS,DFS;;
邻结矩阵比较简单,, 它的BFS,DFS, 两种遍历也比较简单,一个用队列, 一个用数组即可!!!但是邻接矩阵极其浪费空间,尤其是当它是一个稀疏矩阵的时候!!!-------------------- ...
- [Leetcode][第785题][JAVA][判断二分图][BFS][DFS]
[问题描述][中等] [解答思路] 1. DFS 深度优先遍历 时间复杂度:O(N+M) 空间复杂度:O(N) class Solution {private static final int UNC ...
- LeetCode 1263. 推箱子(BFS+DFS / 自定义哈希set)
文章目录 1. 题目 2. 解题 2.1 超时解 2.2 BFS + DFS 1. 题目 「推箱子」是一款风靡全球的益智小游戏,玩家需要将箱子推到仓库中的目标位置. 游戏地图用大小为 n * m 的网 ...
- LeetCode 1034. 边框着色(BFS/DFS)
文章目录 1. 题目 2. 解题 2.1 BFS 2.2 DFS 1. 题目 给出一个二维整数网格 grid,网格中的每个值表示该位置处的网格块的颜色. 只有当两个网格块的颜色相同,而且在四个方向中任 ...
最新文章
- Reids报错解决:Job for redis-server.service failed because the control process exited with error code.
- 文本去重之MinHash算法——就是多个hash函数对items计算特征值,然后取最小的计算相似度...
- 机器学习(2.sklearn(Scikit-learn)库、字典数据的特征抽取)
- mootools系列:打造属于你自己的Popup(弹出框)——扩展功能篇
- php array colum,php5.5新数组函数array_column使用
- 前端大神的离逝,让我们不得不有所反思。
- python内置函数 exec eval compile
- 【Flink】Flink 源码之OperatorChain
- 虚拟化VMware ESXi 6.7服务器安装配置详细步骤图文
- Python Tricks(十二)—— 有理数的加法
- Ueditor、FCKeditor、Kindeditor编辑器漏洞
- Oracle安装步骤(自用)
- hibernate jar 下载地址
- oracle启动pmon,oracle 11g pmon工作内容系列三
- 算法设计与分析——斐波那契堆
- 【个人学习文章收集】
- mac 更新系统时间
- 搬寝室 ----- 动态规划
- DDD中的值对象和实体
- 【信息安全案例】——网络信息面临的安全威胁(学习笔记)
热门文章
- 电子词典中鼠标取词的原理
- led matlab仿真,大功率LED照明电源研究及基于Matlab的仿真
- 30 款 IDEA 宝贝插件
- **没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
- Java开源企业开发平台教程:待办挂起业务场景实现
- ipad概念画板手写+svg动画效果
- AutoAugment 学习
- K210学习笔记(十)——二维码识别
- C语言VRAM字符串平滑移动,航空数字化仪表中动画显示技术的应用
- Python函数式编程:map/reduce