题意:
判断这副图是否满足根是一个环的缩点,然后其余点都是一个点,满足树特性。
思路:
一开始就像无向图缩点乱搞,然后实在太烦搞不下去。。。。
一副图是满足结点和边数量相等,且连通,则一定有一个环。
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; }