Round 2 A

来源:互联网 发布:广西广电网络公司地址 编辑:程序博客网 时间:2024/06/05 04:25

题目链接:
http://codeforces.com/problemset/problem/103/B

大意:
判断图的形状是否为一个章鱼型(?)
由几棵树构成,树的根节点围成一个环。

思路:
只需判断一棵树内加一个环即可。
判断方法: 边数==顶点数 && 连通图

#include<bits/stdc++.h>#define mem(s,t) memset(s,t,sizeof(s))typedef long long ll;using namespace std;//#define LOCALint n,m;const int MAXN =100+10;int g[MAXN][MAXN];int vis[MAXN];int cnt=0;void dfs(int x){    vis[x]=1;    cnt++;    for(int i=1;i<=n;i++){        if(!vis[i] && g[x][i]){            dfs(i);        }    }}int main(){#ifdef LOCAL    freopen("in.txt","r",stdin);    freopen("out.txt","w",stdout);#endif    cin>>n>>m;    mem(g,0);    mem(vis,0);    for(int i=0;i<m;i++){        int x,y;        cin>>x>>y;        g[x][y]=g[y][x]=1;    }    dfs(1);    if(n==m){        if(cnt==m) puts("FHTAGN!");        else puts("NO");    }else puts("NO");    return 0;}
原创粉丝点击