算法
算法学习
ア灬格子衬衫々
这个作者很懒,什么都没留下…
展开
-
回溯法
#include<iostream>#include<algorithm>#include<cstring>using namespace std;typedef long long LL;const int N=10;int n;int a[N]; bool flag[N]; //标记某个数是否被使用过 0 未使用 1已经使用 void dfs(int k){ //k 需要填数的空 if(k>n){ for(int原创 2020-10-19 17:14:10 · 126 阅读 · 0 评论 -
采用Kruskal算法生成最小生成树,并采用并查集的合并优化和查询优化。
文章目录最小生成树1.什么是图的最小生成树(MST)?2.最小生成树用来解决什么问题?Kruskal(克鲁斯卡尔)算法算法描述最小生成树1.什么是图的最小生成树(MST)?用N-1条边连接N个点,形成的图形一定是树。一个具有N个点的有权无向图,最小生成树就是从图的所有边中选择N-1条出来,连接所有的N个点。这个N-1条边的边权之和是所有方案中最小的。2.最小生成树用来解决什么问题?用来解决如何用最小的“代价”用N-1条边连接N个点的问题。Kruskal(克鲁斯卡尔)算法Kruskal算法是原创 2020-10-18 23:54:46 · 1453 阅读 · 0 评论 -
并查集(Disjiont Set)
并查集的最大作用是检测一个图上面存不存在环。无向图,六个顶点显然 1-2-4-3连成一个环#include<stdio.h>#include<stdlib.h>#define VERTICES 6void initialise(int parent[]){ int i; for(i=0;i<VERTICES;i++){ parent[i]=-1; } }int find_root(int x,int parent[]){ int原创 2020-10-13 17:24:01 · 180 阅读 · 0 评论