并查集是一种经常用于判断图中是否有环的算法,重点是将连通的分支用树的形式来表示,代码如下:

#include<bits\stdc++.h>
using namespace std;
const int maxn=100;
int parent[maxn];
int edges[maxn][2];
void csh()/*½«ËùÓж¥µãµÄ¸¸½ÚµãÔ¤ÉèΪ-1*/
{
    for(int i=0;i<maxn;i++)
    {
        parent[i]=-1;
    }
}

int find_root(int x)
{
    int root_x=x;
    while(parent[root_x]!=-1)
    {
        root_x=parent[root_x];
    }
    return root_x;
}

/*1-Successed 0-Failed*/
int insert(int x,int y)
{
    int x_root=find_root(x);
    int y_root=find_root(y);
    if(x_root==y_root)return 0;
    else
    {
        parent[x_root]=y_root;
        return 1;
    }
}

int main()
{
    int n;
    while(cin>>n)
    {
        csh();    
        for(int i=0;i<n;i++)
        {
            cin>>edges[i][0]>>edges[i][1];/*ÊäÈë±ß*/
        }
        int flag=0;
        for(int i=0;i<n;i++)
        {
            int x=edges[i][0];
            int y=edges[i][1];
            if(insert(x,y)==0)
            {
                flag=1;/*ͼÖÐÓл·*/
                break;
            }
        }
        flag==1?cout<<"Yes"<<endl:cout<<"No"<<endl;
    }    
}