算法模板
文章平均质量分 61
yuanba_xs
分享程序员的体会与知识
展开
-
判断无向欧拉图模板
/*判断是否有欧拉回路,即判断是否为欧拉图条件1:图连通:用并查集判断2:不含奇度顶点*/#include #include #define N 1000using namespace std;int n, m;int f[N],degree[N];//记录第i点的度数void init(){ for (int i = 1; i <= n; i++) f[原创 2017-02-04 20:19:23 · 580 阅读 · 0 评论 -
Kruscal算法模板
/*时间复杂度:o(eloge),贪心策略:边权值从小到大找*/#include #include #include #include #define N 100005using namespace std;typedef struct note { int u; int v; int w;}edge;edge e[N];int n, m;//分别表示顶点数和边数in原创 2017-02-03 13:19:06 · 318 阅读 · 0 评论 -
poj2524并查集模板
/*并查集模板*/#include #include #include #define N 50005int n, m;int f[N];void init()//初始化{ for (int k = 1; k <= n; k++) f[k] = k; return;}int find(int x)//寻根{ if (f[x] == x) return x;原创 2017-02-02 23:33:29 · 175 阅读 · 0 评论 -
bellman-ford算法模板
#include #include #include #define MAXN 1005const int inf = 0x3f3f3f3f;using namespace std;int n, m;int dis[MAXN],u[MAXN],v[MAXN],w[MAXN];void bellford(int start){ for (int i = 1; i <= n原创 2017-01-31 15:13:31 · 349 阅读 · 0 评论 -
bfs,dfs遍历图的模板
/*bfs,dfs模板,遍历无向图*/#include #include #include #define N 100#define INF 0x3f3f3fusing namespace std;int n, m;int map[N][N];//可达矩阵,1表示可达,0表示不可达。int vis[N];//记录顶点是否已被访问int cnt;void initgrap原创 2017-01-31 13:16:19 · 453 阅读 · 0 评论 -
bfs迷宫问题--打印路径
/*定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线Input一个5 × 5的二维数组,表示原创 2017-01-31 13:13:29 · 2680 阅读 · 0 评论 -
bfs迷宫问题模板
/*bfs一般用于求迷宫起点到终点的最短距离,原因是迷宫各个方向权值相等*/#include #include #include #include #define N 50using namespace std;struct point {//point类型包含元素x,y坐标和当前的步数step int x; int y; int step;};point start原创 2017-01-31 13:11:34 · 938 阅读 · 1 评论 -
dfs迷宫问题模板
/*输入起点终点坐标,输入迷宫,输出最短路深搜思想:不撞墙不回头,每次走到下一步都有n种情况,遍历这n种情况,对于每种情况到达的下一步,又有n种情况可以走,*/#include #include #include #define N 100using namespace std;int map[N][N] = { 0 },vis[N][N];int endx, endy,原创 2017-01-31 13:10:06 · 702 阅读 · 0 评论 -
floyd算法模板--打印路径
#include #include #include #include #define N 1005#define INF 0x3f3f3f3fusing namespace std;int m, n;int map[N][N];void init(){ for (int i = 1; i <= n; i++) { for (int j = 1; j <= n;原创 2017-01-31 13:26:19 · 2025 阅读 · 1 评论 -
迪杰斯特拉算法模板--打印路径
/*迪杰斯特拉算法用于解决单源最短路问题,时间复杂度为o(n^2),权值为正*/#include #include #include #include #define N 1005#define INF 0x3f3f3f3fusing namespace std;int m, n;int map[N][N];int dis[N];int vis[N];void ini原创 2017-01-31 13:23:51 · 1427 阅读 · 0 评论 -
prime模板
/*prime模板,时间复杂度o(v^2)*/#include #include #define N 1005#define INF 0x3f3f3f3fint map[N][N], dis[N], vis[N];int n, m;int cnt = 0, sum = 0;void init(){ for (int i = 1; i <= n; i++) { for原创 2017-02-03 19:38:18 · 299 阅读 · 0 评论