【Codeforces Round #403】Codeforces 781A Andryusha and Colored Balloons
来源:互联网 发布:urllib post json 编辑:程序博客网 时间:2024/06/05 17:25
Andryusha goes through a park each day. The squares and paths between
them look boring to Andryusha, so he decided to decorate them.The park consists of n squares connected with (n - 1) bidirectional
paths in such a way that any square is reachable from any other using
these paths. Andryusha decided to hang a colored balloon at each of
the squares. The baloons’ colors are described by positive integers,
starting from 1. In order to make the park varicolored, Andryusha
wants to choose the colors in a special way. More precisely, he wants
to use such colors that if a, b and c are distinct squares that a and
b have a direct path between them, and b and c have a direct path
between them, then balloon colors on these three squares are distinct.Andryusha wants to use as little different colors as possible. Help
him to choose the colors! InputThe first line contains single integer n (3 ≤ n ≤ 2·105) — the number
of squares in the park.Each of the next (n - 1) lines contains two integers x and y
(1 ≤ x, y ≤ n) — the indices of two squares directly connected by a
path.It is guaranteed that any square is reachable from any other using the
paths. OutputIn the first line print single integer k — the minimum number of
colors Andryusha has to use.In the second line print n integers, the i-th of them should be equal
to the balloon color on the i-th square. Each of these numbers should
be within range from 1 to k.
dfs一遍每次贪心选最小的。因为各个子树再往下就没有关系了,选别的也没有意义。
#include<cstdio>#include<algorithm>using namespace std;int fir[200010],ne[400010],to[400010],c[400010],n,m;void add(int num,int u,int v){ ne[num]=fir[u]; fir[u]=num; to[num]=v;}void dfs(int u,int fa){ int v; for (int i=fir[u],j=1;i;i=ne[i]) if ((v=to[i])!=fa) { while (j==c[u]||(fa!=-1&&j==c[fa])) j++; m=max(m,j); c[v]=j; dfs(v,u); j++; }}int main(){ int u,v; scanf("%d",&n); for (int i=1;i<n;i++) { scanf("%d%d",&u,&v); add(i*2,u,v); add(i*2+1,v,u); } m=c[1]=1; dfs(1,-1); printf("%d\n",m); for (int i=1;i<=n;i++) printf("%d ",c[i]);}
- 【Codeforces Round #403】Codeforces 781A Andryusha and Colored Balloons
- Codeforces Round #403 (Div. 2) C. Andryusha and Colored Balloons
- Codeforces Round #403 C. Andryusha and Colored Balloons(DFS)
- Codeforces Round #403 div2 C. Andryusha and Colored Balloons
- Codeforces Round #403 (Div. 2) C. Andryusha and Colored Balloons
- Codeforces Round #403 C. Andryusha and Colored Balloons
- codeforces 781A Andryusha and Colored Balloons(树上dfs)
- 【Codeforces 781 A Andryusha and Colored Balloons】+ DFS
- Codeforces Andryusha and Colored Balloons
- Codeforces Round #403 (Div. 1, based on Technocup 2017 Finals) A. Andryusha and Colored Balloons
- 【codeforces 782C】Andryusha and Colored Balloons
- codeforces 782c Andryusha and Colored Balloons
- Codeforces 780C-Andryusha and Colored Balloons
- Codeforces Round #403 (Div. 2) C. Andryusha and Colored Balloons dfs(树)
- Codeforces Round #403 (Div. 2) C. Andryusha and Colored Balloons(DFS 邻接表 数据结构)
- Codeforces Round #403 (Div. 2)C Andryusha and Colored Balloons (dfs)
- Codeforces Round #403 (Div. 2) C. Andryusha and Colored Balloons DFS
- 781A. Andryusha and Colored Balloons
- ServletContextListener
- NAT详解:基本原理、穿越技术(P2P打洞)、端口老化等
- http/2.0与http/1.1区别
- 一个新鲜的程序猿开始
- java 判断字符串中是否有重复字符
- 【Codeforces Round #403】Codeforces 781A Andryusha and Colored Balloons
- 根据红黑树的算法来分析TreeMap的实现
- 面经总结
- 服务架构及单点故障导致系统雪崩探讨
- SpringMVC进行请求数据校验
- 异步处理(Handler)线程(Thread&Runnable)定时器(Timer)Wifi管理(WifiManager&WifiInfo)
- Redis的INCR方法
- c语言问题
- Android开发者福利之--------Android 6.0 API