首页 > 试题广场 >

小O的树上加边

[编程题]小O的树上加边
  • 热度指数:115 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小O有一棵 n 个点组成的树,树上的点从 1n 编号,树上的边是无向的。任意一棵树都是二分图,小O想知道她最多可以给树加多少条边,使得新的图仍然是二分图。

二分图的定义:如果一个图的所有点可以被分成两个集合 AB,使得所有的边都是一端在 A 中,一端在 B 中,那么这个图就是二分图。

输入描述:
第一行输入一个整数 n\ (1 \leq n \leq 10^5 ),表示树上的点数。
此后 n-1 行,第 i 行输入两个整数 u_iv_i\ (1 \leq u_i, v_i \leq n ),表示树上的一条边连接了点 u_i 和点 v_i。保证这些边可以形成一棵树。


输出描述:
在一行上输出一个正整数,表示最多可以给树加多少条边,使得新的图仍然是二分图。

示例1

输入

4
1 2
2 3
3 4

输出

1

说明

可以添加一条边 (1, 4),新的图仍然是二分图。

这道题你会答吗?花几分钟告诉大家答案吧!