zoukankan      html  css  js  c++  java
  • 【贪心】【DFS】Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) C. Andryusha and Colored Balloons

    从任意点出发,贪心染色即可。

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int v[200010<<1],next[200010<<1],first[200010],e;
    void AddEdge(int U,int V)
    {
    	v[++e]=V;
    	next[e]=first[U];
    	first[U]=e;
    }
    bool vis[200010];
    int n,col[200010];
    void dfs(int U,int n1,int n2)
    {
    	vis[U]=1;
    	int co=0;
    	for(int i=first[U];i;i=next[i])
    	  if(!vis[v[i]])
    	    {
    	      ++co;
    	      while(co==n1 || co==n2)
    	        ++co;
    	      col[v[i]]=co;
    	      dfs(v[i],col[U],col[v[i]]);
    	    }
    }
    int main()
    {
    //	freopen("c.in","r",stdin);
    	int x,y;
    	scanf("%d",&n);
    	for(int i=1;i<n;++i)
    	  {
    	  	scanf("%d%d",&x,&y);
    	  	AddEdge(x,y);
    	  	AddEdge(y,x);
    	  }
    	col[1]=1;
    	dfs(1,1,-1);
    	printf("%d
    ",*max_element(col+1,col+n+1));
    	for(int i=1;i<n;++i)
    	  printf("%d ",col[i]);
    	printf("%d
    ",col[n]);
    	return 0;
    }
  • 相关阅读:
    第二周作业
    十二周
    十一周
    第十周
    第九周
    第八周
    第七周
    第六周
    实验报告三
    第四周课程总结&试验报告(二)
  • 原文地址:https://www.cnblogs.com/autsky-jadek/p/6507601.html
Copyright © 2011-2022 走看看