$\color{red}{震惊}\color{#66ccff}{试一下此贴留空暂时,后期慢慢加}$
感觉发在这应该不会有人找到了=-=
嗯就藏在题解区好了=-=分享区下看得人太多了 可怕 算题或者打代码时会有人群恐惧症
第三章 搜索
DFS 深度搜索
BFS 广度搜索 待写 这俩暴搜搜一切好吧,只有不是NP Complete
DFS:例题:排列数字
1. dfs进行递归,表示的意义?
2. 如何加深对dfs的理解(求法)?
3. 为何回溯时,进行现场的恢复?
As:
含义:求出从第u行到最后一行的所有path。
dfs的求法:根据通项公式的含义,假设已知第u+1
行到最后一行的所有path,综合1和2得出:path[u] 与 path[u+1]
合并后,即为dfs的解。3.记得回溯:恢复现场 反证:如果不进行现场的恢复,则在第一次完成深搜后,所有元素都已经被访问过了。
3、bellman - ford算法的具体步骤
for n次
for 所有边 a,b,w (松弛操作)
dist[b] = min(dist[b],back[a] + w)
注意:back[]数组是上一次迭代后dist[]数组的备份,由于是每个点同时向外出发,因此需要对dist[]数组进行备份,若不进行备份会因此发生串联效应,影响到下一个点
Bellman - ford算法是求含负权图的单源最短路径的一种算法,效率较低,代码难度较小。其原理为连续进行松弛,在每次松弛时把每条边都更新一下,若在n-1次松弛后还能更新,则说明图中有负环,因此无法得出结果,否则就完成。
(通俗的来讲就是:假设1号点到n号点是可达的,每一个点同时向指向的方向出发,更新相邻的点的最短距离,通过循环n-1次操作,若图中不存在负环,则1号点一定会到达n号点,若图中存在负环,则在n-1次松弛后一定还会更新)
会的
收藏喽......