搜索与图论
Matt今年18岁
这个作者很懒,什么都没留下…
展开
-
稠密图最短路朴素_Dijkstra算法
#include<iostream> #include<cstring> using namespace std; const int N=510; //因为m和n的范围差别很大,所以是稠密图,用邻接矩阵存数据 int g[N][N]; int dist[N]; bool st[N]; int n,m; int dijkstra() { memset(dis...原创 2019-09-30 12:09:27 · 335 阅读 · 0 评论 -
稀疏图_Dijkstra算法(系统堆优化)
#include<iostream> #include<cstring> #include<algorithm> #include<queue> using namespace std; const int N=100010; typedef pair<int,int> PII; int q[N],dist[N]; int h[N...原创 2019-10-02 16:05:28 · 597 阅读 · 0 评论 -
负权边最短路_bellman_ford算法
#include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N=510, M=10010; int n,m,k; int dist[N],backup[N]; struct edge { int a,b,w; }edges[M]; ...原创 2019-10-02 18:39:07 · 166 阅读 · 0 评论 -
SPFA最短路_对于bellman_frod的队列优化
//spfa有属于对bellman_ford的优化,主要就是bellman_ford的内层循环太多(M次),所以SPFA利用队列来减少这个循环 #include<iostream> #include<cstring> #include<algorithm> #include<queue> using namespace std; const in...原创 2019-10-02 19:06:07 · 105 阅读 · 0 评论 -
最小生成树_Prim算法
#include<iostream> #include<cstring> #include<algorithm> using namespace std; //prim算法与Dijkstra很像,区别是他需要的更新的是到集合的距离 //稠密图,无向图:邻接矩阵存两遍 const int N=510; int g[N][N]; int dist[N]; boo...原创 2019-10-04 20:14:31 · 164 阅读 · 0 评论 -
最小生成树_Kruskal算法
#include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N=200010; //kruskal算法应该是贪心算法,每次找到最短边然后再通过连通块思路建立最小生成树 int p[N]; int n,m; struct edge { ...原创 2019-10-04 21:48:22 · 85 阅读 · 0 评论 -
二分图_DFS染色法判定
#include<iostream> #include<cstring> #include<algorithm> using namespace std; //二分图充要条件:不能存在奇数环 //染色法做二分图就是深度搜索一遍图,然后令一条边的两个顶点颜色不同 const int N=100010,M=200010;//关键点①:无向图的边有两个,所以要M=2...原创 2019-10-06 15:07:12 · 226 阅读 · 0 评论