能力提升综合题单:图论
图的存储与遍历
这两题属于非常相近的题,都是仅使用一个next数组记录某个点的下一个相连的点是哪个的点的建图方式。第一题引入了一个模板基环树(每个点出度均是1的有向图)求最小环。第二题是求每个点遍历到每个环,求路径点和的问题。
两道题都有很多解法,求最小环有模拟,tarjan缩点,并查集的解法。暂时只写了y总的栈模拟解法。
第二题是直接使用了题解给的一种纯思维的解法,很朦胧,我感觉我对点数量和边数量这种数量关系不是很敏感,也不清楚为什么需要存那些信息。先记录到这里。
GG的了,咋发现对于一个普通图,如果用:
void dfs(int u,int fa){
//
}
会重复遍历,必须用
v
i
s
[
]
vis[\ ]
vis[ ] 数组。
用
d
f
s
dfs
dfs 求拓扑序的方法。遍历一个图,在回溯的时候将节点加入到
a
n
s
ans
ans 数组中。数组的逆序就是一个拓扑序。
本文探讨了图的存储与遍历在信息传递和路径点和问题中的应用,涉及模板基环树的最小环求解以及拓扑排序。题目P2661和P2921USACO08DEC分别展示了next数组建图方法和点到环路径点和的计算。最小环问题可以采用模拟、tarjan缩点、并查集等解法,而拓扑排序则通过dfs避免重复遍历。关键词包括图论、最小环、拓扑排序、点遍历、路径点和。

被折叠的 条评论
为什么被折叠?



