说出三个生活中的图。
算法进阶 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
三角形的每个顶点度数是几?
单行道地图属于哪种?
地图上的边权通常表示什么?
一千个点要多少格?
十万个点二十万条边,用哪种?
这样存的好处是什么?
不标记会怎样?
边权不全为 1 还能用广搜求最短吗?
一次搜索走遍所有点说明什么?
参考答案(家长):2。
参考答案(家长):如地铁线路、社交关系、赛程对阵表。
参考答案(家长):两地之间的距离或耗时。
参考答案(家长):有向图。
参考答案(家长):邻接表,矩阵要一百亿格根本开不下。
参考答案(家长):一百万格,还能接受。
参考答案(家长):会绕圈子出不来,无限递归。
参考答案(家长):全用数组,速度快、不用动态分配。
参考答案(家长):整张图是连通的。
参考答案(家长):不能,要用专门的最短路算法。
出现什么情况说明不是二分图?
举一个有依赖关系的例子。
如果中途没有入度为 0 的点了,说明什么?
怎么知道"排不完"?
求全班两两之间的距离,属于哪类?
用一句话说清松弛。
为什么挑最小的那个可以直接确定?
为什么会有过期记录?
有负权该用什么?
第 n 轮还能松弛说明什么?
参考答案(家长):如课程先修、施工工序。
参考答案(家长):染色时发现相邻两点已经同色。
参考答案(家长):最后取出的点数少于总点数。
参考答案(家长):图里有环,无法排出顺序。
参考答案(家长):发现更短的路就更新记录。
参考答案(家长):多源最短路。
参考答案(家长):同一个点可能被多次更新入队,只有最新的有效。
参考答案(家长):边权非负时,不可能再通过别人绕出更短的路。
参考答案(家长):图里有负权环,最短路不存在。
参考答案(家长):Bellman-Ford 或它的队列优化版。
这个优化的直觉是什么?
为什么 k 必须在最外层?
n 是 200,Floyd 要多少次运算?
迷宫最少步数该用什么?
倒推出来的路径是什么顺序?
动手写完整。
这题该用哪个算法?
为什么要分层?
为什么恰好 n-1 条边?
怎么判断两点是否已经连通?
参考答案(家长):要保证"用前 k 个点做中转"的状态被逐步完整扩展。
参考答案(家长):没变化的点再去松弛也不会有新结果。
参考答案(家长):广搜。
参考答案(家长):八百万次,很快。
参考答案(家长):Dijkstra 加前驱数组记录路径。
参考答案(家长):从终点到起点,要反转一下。
参考答案(家长):状态里多了"用了几次机会",要把它放进图里表示。
参考答案(家长):广搜,配上方向数组。
参考答案(家长):看它们的祖先是不是同一个。
参考答案(家长):少了不连通,多了会成环,这正是树的定义。