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

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

筛选

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

摘要:解题思路:注意事项:注意如果找到了解,不要回溯,因为回溯回去啥都回溯没了,所有找到解之后先打印完之和,直接退出程序,不需要回溯,还节约程序执行时间参考代码:#include <iostream> #……

蓝桥杯2017年第八届真题-发现环-题解(C语言代码)--无向图的拓扑排序

无向图的拓扑排序,不过也学习了别人写的并查集+搜索的方法、、、和有向图不同的是:不断删除入度为1的顶点,具体就是用一个vis[]数组标记一下,而且这样也避免了无向图边的重复访问!!!(判断一个点重复访问不可以用入度数组in[]==1来判断,犯错点)```cpp#include#include#incl

蓝桥杯 发现环 DFS+并查集

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

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

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