- 博客(12)
- 收藏
- 关注
转载 拓扑排序
转载:转载博客拓扑排序1、定义 对一个有向无环图(Directed Acyclic Graph简称DAG) G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。 在AOV网中,若不存在回路,则所有活动可排列成一个线性序列,使得每个活动的所有前
2020-07-29 11:03:49
211
原创 ICPC Problem K Mario Kart
ICPC Arab Collegiate Programming Contest 2013训练赛Problem K. Mario Kart题意概述:一条路上有n个车站,你有m个金币,金币有各自的费用c和价值v,可以通过金币在车站间移动,每次移动要选择一些金币,总成本不能超过L,其价值和必须刚好等于abs(i-j),问从1号站移动到n号站最少移动多少次.输入:测试总量N,站点数目n,金币数目m,限制l。一下m行为费用c和价值v。一道经典的背包+dijsktra题目,dijkstra部分完全不需要
2020-07-23 17:12:20
620
1
原创 Floyd算法--最短路径
#include <iostream>#include <cstring>#include <cstdio>#include<algorithm>using namespace std;#define Inf 0x3f3f3f3fint f;int n, m, w;int ma[505][505];int Floyd(){ for(int k=1; k<=n; k++) for(int i=1; i<
2020-05-30 10:31:00
141
原创 Prim算法---最小生成树
#include <cstring>#include <iostream>#include <cstdio>using namespace std;#define Inf 0x3f3f3f3fint m;int ma[101][101];int vis[101];int dis[101];int point[101];int sum=0;int Prim(int u){ int tp=ma[u][1]; for(int i=1;
2020-05-30 10:30:28
140
原创 Dijkstra算法总结-----最短路径寻找
#include <bits/stdc++.h>using namespace std;#define Inf 0x3f3f3f3fint map_[1001][1001];int vis[1001], dis[1001];int m, n;void Init(){ memset(map_, Inf, sizeof(map_)); for(int i=1; i<=n; i++) map_[i][i]=0;//初始化自己到自己的距离为零 fo
2020-05-30 10:30:03
205
原创 合并+快速排序
合并排序基本思想:将待排序元素分成大小大致相同的两个子集合,分别对两个子集进行排序,最终将排好序的子集合并成要求的排好序的集合。先将数组a中相邻两个元素两两配对,即s=1,将他们排序,构成长度为2(s=2)的子集合,再将他们排序成长度为4(s=4)的排好序大的子集合,继续下去,直至全部排好序。时间复杂度为O(nlogn)。下面一段是个人的思考和总结:我是根据《计算机算法设计与分析》教材的代码写的,开始我还想在MergeSort函数里,先将a排序放到函数里定义的数组b中(MergeSort(a, b
2020-05-13 20:29:51
305
原创 矩阵连乘问题
#include <bits/stdc++.h>using namespace std;const int N=7;int p[N]={30, 35, 15, 5, 10, 20, 25};void MatrixChain(int m[N][N], int s[N][N]){ int n=N-1;//一共7个数,6个矩阵 for(int i=1; i<N; i++) m[i][i]=0;//初始化m数组,1-6矩阵 for(int l=
2020-05-09 11:30:47
182
原创 Fire! UVA - 11624(大火蔓延的迷宫)
迷宫题目,只不过加上了数个火源,每分钟火源会向相邻的格子蔓延,所以需要进行火源的一个预处理,选出每个格子会着火的时间点,如果joe在这个火源蔓延时间之前到达,可以经过,否则不可以。bfs解决,两个步骤的时间复杂度均为O(RC)。#include <bits/stdc++.h>using namespace std;const int maxn=1e3 + 10;char a[...
2020-02-18 11:50:23
334
原创 欧拉回路
图中所有边一次仅且一次行便所有顶点的通路称作欧拉通路。图中所有边一次仅且一次行便所有顶点的回路称作欧拉回路。判断无向图G存在欧拉通路:G为连通图,并且G仅有两个奇度顶点(度数为奇数的顶点)或者无奇度顶点。(1)G仅有两个奇度顶点时,G的欧拉通路以此两个结点为端点。(2)G无奇度顶点时,G必有欧拉回路。判断有向图D存在欧拉通路:D为连通图,(1)图D除两个顶点外,其余顶点的出度与入度...
2020-02-16 20:14:34
227
1
原创 增广路算法-EK(邻接矩阵)
增广路算法求解最大流问题。每一次找到一条从源点到汇点的不包含0流量的路径为一条增广路。从s出发不断找增广路的过程,通过BFS想周围搜索与s直接相连的剩余流量不为0的结点,加入队列,每次从队列中取出一个元素继续向周围查询,直到目标点为t。如果一条道路上不包含流量为0 的水管,则说明是一条增广路,给沿途的所有节点两两之间的剩余流量减去该条增广路的最小流量,同时为他们的反向弧加上最小流量,不断循环直...
2020-02-12 17:45:16
548
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人