#include <iostream> #include <vector> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define maxn 10000 + 10 vector<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; }
时间: 2024-11-09 00:29:05