题目链接:
思路:构建新图,对于那些两点连双向边的,忽略,然后其余的都连双向边,于是在新图中,连边的点是能不在同一个图中的,于是我们可以用dfs染色的方法来判断是否存矛盾。
1 #include2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 int map[111][111]; 9 int color[111];10 int n;11 vector >g;12 13 bool dfs(int u,int father,int state)14 {15 color[u]=state;16 for(int i=0;i 0&&!color[i]){54 if(!dfs(i,i,1)){55 flag=0;56 break;57 }58 }59 }60 flag?puts("YES"):puts("NO");61 }62 return 0;63 }