【BZOJ】【P2079】【Poi2010】【Guilds】【水题】

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2079

我们可以先考虑一下树的情况,把树按照深度奇偶染色一定符合题意

图一定有生成树,所以点数>1的联通块一定有解

那么就是判断有没有一个联通块只有一个结点

Code:

#include<bits/stdc++.h>
using namespace std;
int n,m;
int getint(){
	int res=0;char c=getchar();
	while(!isdigit(c))c=getchar();
	while(isdigit(c))res=res*10+c-'0',c=getchar();
	return res;
}
int in[200001];
int main(){
	n=getint();m=getint();
	while(m--){
		int x;
		n-=!in[x=getint()];
		in[x]=1;		
		n-=!in[x=getint()];
		in[x]=1;
	}puts(!n?"TAK":"NIE");
	return 0;
} 


你可能感兴趣的:(bzoj)