题意:
判断这副图是否满足根是一个环的缩点,然后其余点都是一个点,满足树特性。
思路:
一开始就像无向图缩点乱搞,然后实在太烦搞不下去。。。。
一副图是满足结点和边数量相等,且连通,则一定有一个环。
so...实际代码只有判连通= =
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=1e2+10;
int ma[N][N];
bool vis[N];
int n,m;
void DFS(int u)
{
for(int i=1;i<=n;i++)
{
if(vis[i]||!ma[u][i]) continue;
vis[i]=1;
DFS(i);
}
}
int main()
{
int u,v;
scanf("%d%d",&n,&m);
memset(ma,0,sizeof(ma));
for(int i=0;i<m;i++)
{
scanf("%d%d",&u,&v);
ma[u][v]=ma[v][u]=1;
}
memset(vis,0,sizeof(vis));
vis[1]=true;
DFS(1);
int ok=0;
for(int i=1;i<=n;i++)
if(!vis[i]) ok=1;
if(n==m&&!ok)
puts("FHTAGN!");
else
puts("NO");
return 0;
}