
搜索与图论
会笑的小熊
在努力,在进步
展开
-
匈牙利算法(二分图的最大匹配)
题目:代码:#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 510, M = 100010;int n1, n2, m;int h[N], e[M], ne[M], idx;int match[N];bool st[N];void add(int a, int b){ e[idx] =.原创 2022-02-17 12:40:18 · 83 阅读 · 0 评论 -
染色法判定二分图(染色法判定二分图)
题目:原创 2022-02-15 16:19:03 · 166 阅读 · 0 评论 -
Kruskal(Kruskal算法求最小生成树)
题目:代码:#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 100010, M = 200010, INF = 0x3f3f3f3f;int n, m;int p[N];struct Edge{ int a, b, w; bool operator< (const Edge &a原创 2022-02-15 16:14:31 · 165 阅读 · 0 评论 -
Prim(算法求最小生成树)
题目:代码:#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 510, INF = 0x3f3f3f3f;int n, m;int g[N][N];int dist[N];bool st[N];int prim(){ memset(dist, 0x3f, sizeof dist); .原创 2022-02-15 16:07:25 · 161 阅读 · 0 评论 -
Floyd(Floyd求最短路)
题目:代码:#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 210, INF = 1e9;int n, m, Q;int d[N][N];void floyd(){ for (int k = 1; k <= n; k ++ ) for (int i = 1; i <= .原创 2022-02-15 16:01:15 · 76 阅读 · 0 评论 -
spfa(spfa判断负数)
题目:代码:#include <cstring>#include <iostream>#include <algorithm>#include <queue>using namespace std;const int N = 2010, M = 10010;int n, m;int h[N], w[M], e[M], ne[M], idx;int dist[N], cnt[N];bool st[N];void add.原创 2022-02-15 15:55:09 · 79 阅读 · 0 评论 -
spfa(spfa求最短路)
题目:代码:#include <cstring>#include <iostream>#include <algorithm>#include <queue>using namespace std;const int N = 100010;int n, m;int h[N], w[N], e[N], ne[N], idx;int dist[N];bool st[N];void add(int a, int b, int原创 2022-02-15 15:51:43 · 87 阅读 · 0 评论 -
Dijkstra(Dijkstra求最短路 II)
题目:代码:#include <cstring>#include <iostream>#include <algorithm>#include <queue>using namespace std;typedef pair<int, int> PII;const int N = 1e6 + 10;int n, m;int h[N], w[N], e[N], ne[N], idx;int dist[N];b.原创 2022-02-15 15:38:36 · 337 阅读 · 0 评论 -
Dijkstra(Dijkstra求最短路 I)
稠密图:邻接矩阵存稀疏图:邻接表存。原创 2022-02-15 15:34:21 · 499 阅读 · 0 评论 -
bellman-ford(有边数限制的最短路)
题目:代码:#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 510, M = 10010;struct Edge{ int a, b, c;}edges[M];int n, m, k;int dist[N];int last[N];void bellman_ford(){ me原创 2022-02-15 15:45:49 · 216 阅读 · 0 评论 -
拓扑排序(有向图的拓扑排序)
拓扑序列是针对有向图。拓扑序列例如:1-->2、2-->3、1-->3,则序列[1 2 3]是一个拓扑序列,因为满足起点在终点的前面。所以存在环的一定没有拓扑序列,而有向无环图一定存在拓扑序列,因此有向无环图又称为拓扑图。有向无环图的求法:入度指有多少条边指向自己,出度是有多少条边出去,因此3的入度为2,出度为0。...原创 2022-02-15 15:23:05 · 1662 阅读 · 0 评论 -
树与图的广度优先遍历(图中点的层次)
题目:代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <queue>using namespace std;const int N = 100010;int n, m;int h[N], e[N], ne[N], idx;int d[N],q[N];//插入边void add(in.原创 2022-02-13 20:51:22 · 163 阅读 · 0 评论 -
树与图的深度优先遍历(树的重心)
题目:样例:代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 100010, M = N * 2;int n;int h[N], e[M], ne[M], idx;int ans = N; bool st[N]; //b...原创 2022-02-13 20:35:25 · 256 阅读 · 0 评论 -
BFS(八数码)
题目:代码:#include <iostream>#include <algorithm>#include <unordered_map>#include <queue>using namespace std;int bfs(string state){ string end = "12345678x"; //定义终点:将3 X 3的数组展成一行,用字符串来表示其状态并存到队列中 queue<string.原创 2022-02-12 21:19:45 · 400 阅读 · 0 评论 -
BFS(走迷宫)
BFS优点:求最短距离问题题目:移动距离:代码:#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef pair<int, int> PII;const int N = 110;int n, m;int g[N][N], d[N][N]; //g[][]存输入的数组,d[][]存每个点到起点的距离PI.原创 2022-02-12 20:19:09 · 694 阅读 · 1 评论 -
DFS(n-皇后问题)
题目:代码:第一种搜素顺序#include <iostream>using namespace std;const int N = 10;int n;int path[N];char g[N][N];bool col[N],dg[N],udg[N]; //col[N]列,dg[N]正对角线,udg[N]反对角线void dfs(int u){ if(u==n){ //找到一组方案 for(int i=0;i<n;i++) p原创 2022-02-12 16:51:17 · 277 阅读 · 0 评论 -
DFS(排列数字)
DFS入门级(模板)_浮生未歇-优快云博客_dfs入门题目:代码:#include <iostream>using namespace std;const int N = 10;int n;int path[N];bool st[N];void dfs(int u){ if (u == n)//说明当前位置已填满 { for (int i = 0; i < n; i ++ )cout<<path[i]&l原创 2022-02-12 11:39:52 · 400 阅读 · 0 评论