• 虚线方向的链可以无限延伸

这一点很关键

在X染色体中,只有四个节点有一条连边,四个节点无限延伸后任然只有四个节点只有一条连边

在Y染色体中,只有三个节点有一条连边,三个节点无限延伸后任然只有三个节点只有一条连边

在I染色体中,只有两个节点有一条连边,两个节点无限延伸后任然只有两个节点只有一条连边

所以只要判断每个点的度数即可。。。。

#include<bits/stdc++.h>
using namespace std;
int n,m;
int du[501];
int main()
{
    cin>>n>>m;
    for(int i=1; i<=m; i++)
    {
        int x;
        int y;
        cin>>x>>y;
        du[x]++;
        du[y]++;
    }
    int cnt=0;
    for(int i=1; i<=n; i++)
    {
        if(du[i]==1)
        {
            cnt++;
        }
    }
    if(cnt==2)
    {
        cout<<"I"<<endl;
        return 0;
    }
    if(cnt==3)
    {
        cout<<"Y"<<endl;
        return 0;
    }
    if(cnt==4)
    {
        cout<<"X"<<endl;
        return 0;
    }
    cout<<"NotValid"<<endl;
    return 0;
}