摘要:Dijkstra算法:求单源最短路的算法。主要步骤:1.定义一个dis数组记录起始点到每个点的距离,初始化时不能到达的记为inf(一般用0x3f3f3f3f)。2.找到离起始点最近的节点从这个点松弛,并标记3.松弛,如果出现s->m > s->k->m,则将dis[m...
阅读全文
摘要:为了填坑,补起了三个月前的图论,有一道dijkstra的题目WA了6次还没过,拿出之前的代码,准备分析一下哪里出现了问题。看完题目,这就是一道比较基础的单源最短路的题,但是为什么我过不了呢???很奇怪的我照着之前的代码重构了一遍结果还是WA了,WTF???WA的我怀疑...
阅读全文
摘要:三种模板:Edmonds_Karp,Dinic,SAP例题:Drainage Ditches(HDU1532)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth...
阅读全文
摘要:字典树(tire tree):把字母存在树中,其中一条子链(从根节点开始)就是一个单词。 核心代码(主要三部分:结构体,插入,查询):1.创建结构体struct node{ //isEnd是否是最后一字母 //也可以是别的,比较灵活 int...
阅读全文
摘要:Floyd算法:求最短路的一种算法(最暴力的方法)复杂度O(n3)特点:速度慢,但是任意起点的(与Dijkstra不同),程序不难,但很多题目都是变式,需要较深的理解(原理是动态规划)标程:#include #include #define INF 0x3f3f3f3...
阅读全文
摘要:Prim:求最小生成树的另一个算法 还可以用Kruskal(https://blog.csdn.net/Radium_1209/article/details/80503384)与Kruskal的不同:Kruskal是加边,而Prim是加点具体步骤...
阅读全文
摘要:Kruskal:求最小生成树的一个算法。需要了解的知识:并查集(https://mp.csdn.net/postedit/79661568)具体步骤:将边按照价值排序(贪心思想) 如果这两个边不通,利用并查集将两个边并起来 ...
阅读全文
摘要:虽然蓝(bao)桥(li)杯已经结束了,但是之前练习的时候做的一个题让我学到了一个新的算法——Tarjin算法。例题:发现环(第八届蓝桥杯国赛C语言B组第4题)小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网...
阅读全文
摘要:拓扑排序(topsort)核心思想:不停找入度为零的点不断删去,并更新其他节点入度直到为空。适用范围:一些满足一定先后关系的活动排序。例题:John has n tasks to do. Unfortunately, the tasks are not indepen...
阅读全文
摘要:例题:欧拉回路Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17034 Accepted Submi...
阅读全文
摘要:例题:C. Rumortime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVova promised himself...
阅读全文