问题描述:
牛牛在一个迷宫中,迷宫有n个格子,有 m条通道,每条通道连接两个格子 u, v,编号为 u 的格子与编号为 v 的格子可互相到达,
每人每条通道只能走一次。
牛牛想知道,他是否能从 11号格子出发回到 1 号格子。
输入
第一行给定两个整数 n , m 。
接下来 m 行,每行有两个整数 u,v 。
//1≤n≤100,000 0≤m≤100,000 0≤L≤m
//m对 u, v 互不相同
//输出
//若能回到 1号格子
则返回Yes,否则返回No。
问题思路:
深度优先搜索算法
从顶点1 出来后能不能回去,无论怎么走,都是走完1节点的每条路的连通图判断是否回到1,这样时间最多就是遍历所有的点O(n)
样例:
输入:
[4, 4],[(1,2), (2, 3), (3,4),(4,1)]
输出:
“Yes”
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct Point {
int x;
int y;