笔试真题解析 | 4.9小红书暑期实习三道编程题

恭喜发现宝藏!搜索公众号【TechGuide】回复公司名,解锁更多新鲜好文和互联网大厂的笔经面经。
作者@TechGuide【全网同名】

订阅专栏【进阶版】2023最新大厂笔试真题 & 题解,不容错过的宝藏资源!

第一题:平衡

题目描述

输入一棵树 T,你需要删除一条边,这棵树会被分成A 和 B 两棵树。你需要让两部分的节点数的差的绝对值| |A|-|B| |尽可能小。输出最小的| |A|-|B| |和最优方案的数量。

输入描述

第一行一个整数 n表示节点的数量,节点从1 到 n编号。

接下来n-1行每行两个正整数 s t,表示s的父亲是t。

输入保证是一棵树。

对于所有数据 1<=n<=100000。

输出描述

输出一行,两个整数,用空格分开,分别表示最优解和最优方案数。

样例

输入

3
2 1

你可能感兴趣的:(java,深度优先,算法)