#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
inline int read() {
int x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-')f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
x = x * 10 + ch - '0';
ch = getchar();
}
return x*f;
}
int n, m,fa[100001];
bool mark[100001];
inline int find(int x) {
return fa[x] == x ? x : fa[x] = find(fa[x]);
}
int main() {
n=read();m=read();
for(int i=1;i<=n;i++)fa[i]=i;
for(int i=1;i<=m;i++){
int p=find(read()),q=find(read());
if(p!=q){fa[p]=q;mark[q]=(mark[p]|mark[q]);}
else mark[p]=1;
}
for(int i=1;i<=n;i++){
if(!mark[find(i)]){printf("NIE");return 0;}
}
printf("TAK");
return 0;
}
1116: [POI2008]CLO (并查集)
最新推荐文章于 2020-03-26 12:57:50 发布