搜索
文章平均质量分 87
数学小牛马
数学专业本科在读,有奇奇怪怪的coding算法/或者其他想法的可以留言,我会积极为大家带来更多好的原创博文~
展开
-
[CLRS Chapter22]基本的图算法Ⅳ(深度优先搜索后图中每条边的类型可以提供关于图的重要信息)
边的分类G(V,E)G(V,E)G(V,E)在基于深搜定义下的前驱子图GπG_\piGπ(又称深度优先森林)中定义了四种类型的边:树边均为深度优先森林的边(EπE_\piEπ);后向边为EEE中非树边且将节点连向祖先节点的边(自循环的边被认为是后向边);前向边为后向边的反向描述,连接向后代节点的边;横向边为所有其他类型的边,包含同一树中非祖先、深搜森林中连接两棵树的边等等;对应上节验证括号化定理的深搜的前驱子图可以得出,粗线描述的都为树边构成了前驱子图,标注为B为的是连接祖先的后向边,原创 2022-03-30 23:17:56 · 420 阅读 · 0 评论 -
[CLRS Chapter22]基本的图算法Ⅱ深度优先搜索原理角度实现&性质证明(括号化定理、白色路径定理)
广度优先树首先给定图GGG和目标搜索点sss的情况下,定义前驱子图Gπ=(Vπ,Eπ)G_\pi=(V_\pi,E_\pi)Gπ=(Vπ,Eπ),其中点集Vπ={v∈V∣v.π≠NIL}⋃{s}V_\pi=\{v\in V|v.\pi\ne NIL\}\bigcup\{s\}Vπ={v∈V∣v.π=NIL}⋃{s},Eπ={(v.π,v)∣v∈V−{s}}E_\pi=\{(v.\pi,v)|v\in V-\{s\}\}Eπ={(v.π,v)∣v∈V−{s}}。可以看出前驱子图表达的是由目.原创 2022-03-29 22:50:13 · 527 阅读 · 0 评论 -
[CLRS Chapter22]基本的图算法Ⅱ验证广搜最短路径的正确性
验证广搜最短路径的正确性首先定义最短路径δ(s,v)\delta(s,v)δ(s,v)是节点s到节点v的最短路径,若没有通路那就记为δ(s,v)=∞\delta(s,v)=\inftyδ(s,v)=∞,注意该处定义的最短路径由于是无权图所以都是单位长度。引理1. 给定有(无)向图G=(V,E)G=(V,E)G=(V,E),sss为任意节点,给定任意边(u,v)∈E(u,v)\in E(u,v)∈E会得到δ(s,v)≤δ(s,u)+1\delta(s,v)\le \delta(s,u)+1δ(s,v)≤原创 2022-03-28 21:53:16 · 477 阅读 · 0 评论 -
[CLRS Chapter22]基本的图算法Ⅰ(从算法导论原理c++实现算法)
书中在第二十二章图的基本算法中主要提到了以下几个部分:图的表示BFSDFS拓扑排序强连通分量相关算法题目的语言实现操作这里不做阐述,主要实现书中提到的伪代码实现与证明过程:图的表示对于G=(V,E)G=(V,E)G=(V,E)主要针对点集为VVV,边集为EEE的有向图和无向图,其中两种标准的方法是邻接链表和邻接矩阵:邻接矩阵可以看作是空间复杂度为O(V×V)O(V\times V)O(V×V)的01矩阵,当边带权重时则矩阵内部的信息会出现边权取代01值;邻接链表通过链表方式记录每原创 2022-03-27 22:00:40 · 1356 阅读 · 0 评论 -
Catch That Cow POJ - 3278(bfs+剪枝)
题目链接Catch That Cow POJ - 3278题目大意目前位置为n,目的地为k这是一个序列,有两种方法行走耗费时间单位都是1(设当前值为n)n->(n+1) || n->(n-1)n->2*n都是一个单位的时间,问到达目标点的最短时间总结求解最短距离首先想到bfs????先写出来运行发现需要剪枝需要学习的是打破常规思路,剪枝也要针对不同的方式...原创 2020-03-15 17:15:15 · 111 阅读 · 0 评论 -
CH2501矩阵距离(BFS)
矩阵距离题目告知01矩阵求解各个点到1点的最短距离bfs题目,还是预先定义方向数组值得记录的就是queue<pair<int,int> >的使用方法q.push(make_pair(int_first,int_second))直接使用pair时pair<int int> now(int_first,int_second)#include&l...原创 2020-03-15 16:21:57 · 142 阅读 · 0 评论 -
POJ3322(bfs+状态限制)
题目地址POJ3322一道代码量比较大的题目遇见这种地图bfs的要学会建立常数数组保存信息判别式子尽量用函数(如果比较繁杂的话)(不错的搜索题)#include<iostream>#include<queue>#include<algorithm>#include<cstdio>using namespace std;st...原创 2020-03-14 02:31:31 · 246 阅读 · 0 评论 -
Addition Chains POJ2248搜索(限制深度)
题目链接Addition Chains POJ2248枚举过程中优先枚举大数+剪枝按层数进行搜索,剪枝a[i]+a[j]<=a[x-1]枚举过小直接breaka[i]+a[j]>n枚举过大continuebool v[]标记#include<iostream>#include<cstring>using namespace std;...原创 2020-03-13 01:10:39 · 146 阅读 · 0 评论