题目链接:右转进入题目
题目大意:请自行阅读原题
解:和cf风格类似的题,就是这种思路题。
不难发现如果两个点是联通的,那么两个点都会满足条件。
(因为发现这个点不涂色是不划算的,只要两个点涂上不同的颜色即可)
所以任务变为图中是否有孤立的点。
随便怎么判一下即可。
这个题没有自环,如果有的话还需要特判一下。
代码:
#include<iostream>
#include<cstdio>
#define MAXN 200010
using namespace std;
int sz[MAXN];
int main()
{
int n,m;scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
int u,v;scanf("%d%d",&u,&v);
if(u!=v) sz[u]++,sz[v]++;
}
for(int i=1;i<=n;i++)
if(!sz[i])
{
printf("NIE\n");
return 0;
}
printf("TAK\n");return 0;
}