二分图判定 水题 Hihocoder 1121

#include <iostream>#include <vector>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define maxn 10000 + 10vector<int> G[maxn];int c[maxn];int n, m;bool dfs(int u, int color){c[u] = color;for(int i=0; i<G[u].size(); i++){int &v = G[u][i];if(!c[v] && !dfs(v, -color))return false;if(c[v] == color)return false;}return true;}int main(){int T;cin>>T;while(T–){memset(c, 0, sizeof(c));scanf("%d%d", &n, &m);for(int i=1; i<=n; i++)//这一步很重要 一定要初始化清楚G[i].clear();int u, v;for(int i=0; i<m; i++){scanf("%d%d", &u, &v);G[u].push_back(v);G[v].push_back(u);}if(dfs(u, 1)) printf("Correct\n");else printf("Wrong\n");}return 0;}

,所有欺骗中,自欺是最为严重的

二分图判定 水题 Hihocoder 1121

相关文章:

你感兴趣的文章:

标签云: