用两种颜色覆盖图
#include<iostream> #include<stdio.h> #include<vector> #define maxv 1000 using namespace std; vector<int>G[maxv]; int v; int color[maxv]; bool dfs(int v,int c) { color[v]=c; for(int i=0;i<G[v].size();i++) { if(color[G[v][i]]==c) return false; if(color[G[v][i]]==0&&!dfs(G[v][i],-c)) return false; } return true; } int main() { for(int i=0;i<v;i++) { if(color[i]==0) { if(!dfs(i,1)) { printf("NO\n"); return 0; } } } printf("YES\n"); return 0; }
时间: 2024-11-03 22:21:27