Codeforces Round 869 (Div. 2) D题

找环+DFS+记录方案

Codeforces Round 869 (Div. 2) D题_第1张图片

 题意要求,找到一个环,同时环上存在一个点,该点存在两条不在环上的点,并输出对应的边。

该图的一种解决方案如下

YES
6
5 4
6 4
4 3
1 4
2 1
3 2

思路: 先找到可能构成环的点(任意保存在一个容器st里面),如果环上一点的度数>=4,可以证明存在一个构造方案。 对于环上度数大等于4的点,dfs看能不能暴力搜回自己,同时在这个过程中存储下对应的路径,记录方案以备后面输出

对于如何找环,用bfs感觉不太准确,bfs能处理出哪些点肯定不能构成环,但我暂时无法处理出构成的环具体是什么。  所以就瞎搞,处理出哪些可能是在环上的点,再暴力搜索看能不能搜回自己,搜回到自己说明存在环。这时如果该点的度数再满足大等于4的条件就是有解了。

你可能感兴趣的:(Codeforces,深度优先,算法)