[Squarefk]树链剖分

成绩 0 开启时间 2013年02月21日 星期四 23:02
折扣 0.8 折扣时间 2013年02月28日 星期四 23:02
允许迟交 关闭时间 2013年02月28日 星期四 23:02
输入文件 treea.in 输出文件 treea.out
树链剖分
【问题描述】
其实,本题和树链剖分没有关系。
作为一名OIer,ZYN和LHC自然要好好利用暑假学习算法、数据结构。某一
天,他们在一起研究树链剖分,被FK看到了。FK决定不懂装懂,问了他们一个
很奇怪的问题:给你们一棵树,能够拆成的最小的链数是多少?
链的定义:一个由X个点和X-1条边组成的连通块,注意X≥1,每个点的
度数≤2。
拆的要求:将原图中的一些边删去,使得每个点属于一条链。
ZYN笑了笑:“这很简单么。。。只要。。。只要。。。”LHC随声附和“对!
对!”,可不久两人都陷入了沉思。FK因为难倒了他们而窃喜,实际上他自己
也不会做。那么你能帮帮这三个悲催的人么。
【输入格式】
从文件tree.in中读入数据。
第1行有1个数N,表示树的节点的个数。
第2行到第N行,每行两个数X、Y,表示在树上点X与Y之间有边相连。
【输出格式】
输出到文件tree.out中。
输出1行,包含1个数,表示最少能拆成的链数。
【样例输入】
4
1 2
1 3
1 4
【样例输出】
2
【样例解释】
两条链分别是:2-1-3,4
【数据范围】
对于30%数据,N≤10
对于60%数据,N≤300
对于100%数据,N≤100000