题解 1841: 蓝桥杯2017年第八届真题-发现环

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

蓝桥杯2017年第八届真题-发现环

摘要:解题思路:通过读题发现,只有一个环,那么就可以使用tarjan将这一个环缩成一个点,将这一个点中的点输出即可注意事项:参考代码:#include<bits/stdc++.h> using names……

c++利用数组记录路径

摘要:解题思路:使用一个bool已经dfs来判断环上点的位置,详细的看代码上的注释注意事项:参考代码:#include<bits/stdc++.h>#define DZT ios::sync_with_st……

蓝桥杯 发现环 DFS+并查集

#蓝桥杯2017年第八届真题发现环DFS+并查集##1.思路1.并查集代表**连通分支**,当然,属于同一个连通分支的节点一定彼此连通2.在输入边时,合并连通分支,如果两个节点**已经连通**(即已经属于相同连通分支),新加入的边与之前的若干条边**构成环路**,

蓝桥杯2017年第八届真题-发现环-题解(C++代码)

解题思路:DFS不断向当前结点的下一个结点前进,顺便记下下一个结点的父节点以便回头可以找到所有在环上的结点。用一个数组s[maxn]记录DFS过程中每一个结点的访问状态,对于结点p,如果:s[p]=-1代表当前结点正在访问中;s[p]=0代表当前未被访问;s[p]=1代表当前结点已经被访问过了。