• GIL-Guilds(黑白灰染色)


    传送门门门门门咩咩咩咩咩咩咩咩咩咩咩咩

    (这题真是扯谈!!!)

    (灰色很高级是吧,但是题目没要你把颜色全部用上去啊!!!)

    (黑色或者白色只有一个条件,但灰色需要和所有三种颜色都相邻。这么难搞,那我完全可以用黑或白代替灰色啊!)

    于是,转化为一个黑白染色系统

    (如果按照黑白相间染色的话,一定可以成功。不可以成功,说明那个点是孤立的。)

    (于是,随便电风扇(dfs)一下就好了呀~)

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn=1000009;
    int n,m;
    struct p{
    	int to,nxt;
    }d[maxn];int head[maxn],cnt=1,color[maxn];
    void add(int u,int v){
    	d[cnt].to=v,d[cnt].nxt=head[u],head[u]=cnt++;
    }
    void dfs(int now,int se)
    {
    	for(int i=head[now];i;i=d[i].nxt)
    	{
    		int v=d[i].to;
    		if(color[v]==-1)//没有访问过
    		{
    			color[v]=se^1;
    			dfs(v,color[v]);
    		}
    	}
    }
    int in[maxn];
    int main()
    {
    	cin>>n>>m;
    	for(int i=1;i<=m;i++)
    	{
    		int l,r;
    		cin>>l>>r;
    		add(l,r),add(r,l);
    		in[l]++,in[r]++;
    	}
    	for(int i=1;i<=n;i++)
    	{
    		if(in[i]==0)
    		{
    			cout<<"NIE";
    			return 0;
    		}
    	}
    	memset(color,-1,sizeof(color));
    	for(int i=1;i<=n;i++)
    	{
    		if(color[i]==-1)
    		{
    			color[i]=1;
    			dfs(i,1);
    		}
    	}
    	cout<<"TAK"<<endl;
    	for(int i=1;i<=n;i++)
    	{
    		if(color[i]==1)
    			cout<<"K"<<endl;
    		else
    			cout<<"S"<<endl;
    	}
    }
    
  • 相关阅读:
    SQL SERVER 运维日记
    openstack
    Java GC 日志详解
    突破 BTrace 安全限制
    End-to-End Tracing of Ajax/Java Applications Using DTrace
    调试工具BTrace 的使用--例子
    btrace-dtrace-for-java-ish
    DTrace Probes in HotSpot VM
    DTrace memory leak 内存泄露
    Java-JVM-GC
  • 原文地址:https://www.cnblogs.com/iss-ue/p/12690137.html
Copyright © 2020-2023  润新知