LG#P11242. 【GESP强化 六级】小珅和小泽的成长树

提交0 通过0
通过率0%
时间限制1000ms
内存限制512MiB
    ID: 10369 传统题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 普及 上传者: 标签>GESPGESP强化C++c++编程题洛谷公开题数学洛谷原创O2优化树论洛谷月赛多叉树

题目描述

题目背景

小珅和小泽正在校园里共同设计一棵“成长树”。树上的每一个结点代表一次成长的足迹,而每一个叶子结点则悬挂着一张写有目标的卡片。

小珅已经确定了所有叶子结点到根结点的距离信息,小泽希望用尽可能少的结点搭建出符合要求的成长树。

你能帮助他们计算出这棵树最少需要多少个结点吗?

题目描述

小珅和小泽要搭建一棵有根树。这棵树共有 kk 个叶子结点,第 ii 个叶子结点的深度为 aia_i

请你计算:在满足这些叶子结点深度要求的所有有根树中,结点总数最少是多少。题目保证至少存在一棵符合要求的树。

如果你对题目中的定义不熟悉,可以参考下面的说明:

  • 图上的 简单路径 是一条不重复经过顶点、也不重复经过边的路径。
  • 一棵 是一张连通图,并且任意两个结点之间有且仅有一条简单路径。在树中选定一个结点作为根结点后,它就成为一棵有根树。
  • 树上的 叶子结点 指不是根结点且度数为 11 的结点。
  • 一个结点的 深度 是该结点到根结点的简单路径上所包含的结点个数。

输入格式

第一行一个整数 kk

第二行包含 kk 个整数 a1,a2,,aka_1, a_2, \dots, a_k,依次表示每个叶子结点的深度。

输出格式

输出一行一个整数,表示满足要求的树最少包含多少个结点。

输入输出样例

4
2 3 4 5
8
7
6 6 7 8 4 2 4
14

说明/提示

样例解释

对于第一组数据,小珅和小泽可以搭建出下面这棵树:

这棵树共有 88 个结点,其中叶子结点 3,5,6,83, 5, 6, 8 的深度依次为 2,3,4,52, 3, 4, 5。可以证明,不存在结点数不超过 77 且满足要求的树。

数据规模与约定

本题采用捆绑测试和子任务依赖。

  • Subtask 0(0 pts):样例。
  • Subtask 1(30 pts):k=2k = 2
  • Subtask 2(30 pts):a1=a2==aka_1 = a_2 = \dots = a_k
  • Subtask 3(40 pts):无特殊限制。依赖于子任务 020 \sim 2

对于所有数据,保证 1k1051 \leq k \leq 10^52ai1052 \leq a_i \leq 10^5,并保证至少存在一棵符合要求的树。

3
10 17 5
19