首页 > 其他分享 >无向环套树找环

无向环套树找环

时间:2024-01-30 15:55:56浏览次数:21  
标签:int dfs vis add 无向 环套 include flg

 

dfs

#include <iostream>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
using namespace std ;
const int  N=5001;
#define int long long
const int mod =998244353;

 vector<int> G[N] ; void add(int x,int y){G[x].push_back(y);}
 map<int,bool> vis;
 stack<int> s;
 int n ,flg ;
 void dfs(int x,int fa){
    
    if(vis[x]==2 ||flg) return ;
    if(vis[x] ==1){
        flg =1 ;
        while(s.size()) cout <<s.top() <<' ',s.pop() ;
        return ;
    }
   
    s.push(x); 
    vis[x] = 1;
    for(int y: G[x]) if(y!=fa)
        dfs(y,x) ;
    
    vis[x] =2 ; s.pop() ;
 }
 signed main(){
   int m ; cin>>n>>m ;
    for(int i=1;i<=m;i++){
        int x,y ;cin>>x>>y ;add(x,y),add(y,x) ;
    }
    dfs(1,0) ;
 } 

 

标签:int,dfs,vis,add,无向,环套,include,flg
From: https://www.cnblogs.com/towboa/p/17997286

相关文章

  • 【Leetcode1949. 坚定的友谊】使用MySQL在无向图中寻找{"CompleteTripartite", {1, 1,
    目录题目地址思路代码MySQL代码逐行翻译为Pandas代码等效Cypher查询(未验证)题目地址https://leetcode.cn/problems/strong-friendship/思路就是在无向图中寻找这个pattern:(*Mathematica*)GraphData[{"CompleteTripartite",{1,1,3}}]SQL写还是比较麻烦。更加复杂的查询还是......
  • 【Leetcode1949. 坚定的友谊】使用MySQL在无向图中寻找{"CompleteTripartite", {1, 1,
    目录题目地址思路代码MySQL代码等效Cypher查询(未验证)题目地址https://leetcode.cn/problems/strong-friendship/思路就是在无向图中寻找这个pattern:(*Mathematica*)GraphData[{"CompleteTripartite",{1,1,3}}]SQL写还是比较麻烦。更加复杂的查询还是建议把数据迁......
  • 无向图的连通分量
    我不知道我为什么脑子抽风一定要用并查集来写这个东西本地能过样例,但因为cg上c++98不接受unordered_map,试了一下tr1/unordered_map,铩羽而归但写都写了,在这里存个档权当留念:(8-1:无向图的连通分量【问题描述】求解无向图的连通分量。【输入形式】第一行:顶点数边数;第二行:顶......
  • tarjan无向图割点板子
    //无向图割点模板#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'#defineN20001usingnamespacestd;template<typenameTp>inlinevoidread(Tp&x){x=0;registerboolf=1;registercharc=getchar();for(;c&......
  • 【POJ 1144】Network 题解(Tarjan算法求无向图的割点)
    一家电话线公司(TLC)正在建立一个新的电话电缆网络。它们连接由1到N的整数编号的几个位置。没有两个地方的数字相同。这些线路是双向的,总是连接在两个地方,在每一个地方,线路都以电话交换机结束。每个地方都有一个电话交换机。从每个地方可以通过其他地方的线路到达,但不需要直接连接,可......
  • 无向图tarjan
    ·区别于有向图(他的儿子是可能等于他的爸爸的)所以需要这么打tarjan(1,0);voidtarjan(intx,intfa){dfn[x]=low[x]=++tot;q.push(x),ins[x]=1;for(inty:e[x])if(y==fa)continue;//他的儿子是可能等于他的爸爸的elseif(!dfn[y])......
  • 【图论】无向图数圈圈
    本篇主要讨论圈数较小(\(k\leq5\))的时候无向图上数圈的方法。1.k\(\leq\)4这部分可以做到\(n,m\leq10^5\)(点数和边数)。\(k=2\):???不用说。\(k=3\):我们考虑有方向性的数环避免重复,给每个点定义其属性为\((deg_i,i)\),\(deg\)即无向图度数,比较属性时首先比较第一项......
  • B3610 [图论与代数结构 801] 无向图的块 题解
    题目传送门前言本题解内容均摘自我的Tarjan学习笔记。解法Tarjan与无向图无向图与割点(割顶)在一个无向图中,不存在横叉边(因为边是双向的)。一个无向图中,可能不止存在一个割点。割点(割顶):在一个无向图中,若删除节点\(x\)以及所有与\(x\)相关联的边之后,图将会被分......
  • 【算法题】统计无向图中无法互相到达点对数
    题目:给你一个整数n,表示一张无向图中有n个节点,编号为0到n-1。同时给你一个二维整数数组edges,其中edges[i]=[ai,bi]表示节点ai和bi之间有一条无向边。请你返回无法互相到达的不同点对数目。示例1:输入:n=3,edges=[[0,1],[0,2],[1,2]]输出:0解释:所......
  • 2023-10-04:用go语言,现有一棵无向、无根的树,树中有 n 个节点,按从 0 到 n - 1 编号 给你
    2023-10-04:用go语言,现有一棵无向、无根的树,树中有n个节点,按从0到n-1编号给你一个整数n和一个长度为n-1的二维整数数组edges,其中edges[i]=[ai,bi]表示树中节点ai和bi之间存在一条边。每个节点都关联一个价格。给你一个整数数组price,其中price[i]是第i......