781A. Andryusha and Colored Balloons

    xiaoxiao2021-03-25  105

    题目链接:点击打开链接

    #include<stdio.h> #include<algorithm> #include<string.h> using namespace std; int visit[200010],next[400010],first[400010]; int v[400010],col[200010]; int n,e; void edge(int x,int y) { v[++e]=y; next[e]=first[x]; first[x]=e; } void dfs(int u,int n1,int n2) { int i; visit[u]=1; int co=0; for(i=first[u];i;i=next[i]) { if(!visit[v[i]]) { ++co; while(co==n1||co==n2) ++co; col[v[i]]=co; dfs(v[i],col[u],col[v[i]]); } } } int main() { int i,j,x,y; scanf("%d",&n); for(i=1;i<n;i++) { scanf("%d%d",&x,&y); edge(x,y); edge(y,x);  } //memset(first,0,sizeof(first)); //memset(visit,0,sizeof(visit)); col[1]=1;    dfs(1,1,-1);    int max=0;    for(i=1;i<=n;i++)     if(max<col[i])     max=col[i];     printf("%d\n",max); for(i=1;i<n;i++) printf("%d ",col[i]); printf("%d\n",col[n]); return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-19069.html

    最新回复(0)