洛谷 P11242 碧树 C语言

题目:
P11242 碧树 - 洛谷 | 计算机科学教育新生态

题目背景

English statement. You must submit your code at the Chinese version of the statement.

小 T 不知道交流是什么。

是为了弄懂一串奇怪的符号,然后再把它放入他人的大脑吗?

是为了得到一些抽象的知识,然后再用它打破自己的习惯吗?

为了交流,小 T 最终决定接通了 220V 的电压。

题目描述

t1k1x1ww。

小 T 注视着这一串自己不能理解的符号,决定先和你交流一个 OI 题目。

小 T 有一棵有根树,它共有 k 个叶子结点,同时他还告诉了你,其叶子结点的深度分别为 a1...ak。请你帮他计算,这棵树最少包含多少个结点。小 T 保证存在至少一棵这样的树。

如果您不熟悉题面中的若干定义,我们乐意提醒您:

  • 图上的 简单路径 指一条经过顶点不重复、经过边不重复的路径。
  • 一棵 是一张联通,且任意两点之间有且仅有一条简单路径的图。在一棵树里,我们会选择一个节点为根结点。
  • 树上的 叶子结点 为不是根结点,且度数为 1 的结点。
  • 树上一个节点的 深度 是该结点到根结点的简单路径上结点的个数。

输入格式

第一行一个整数 k。

接下来一行 k 个整数,描述 a1...ak。

输出格式

仅一行一个整数,表示答案。

输入输出样例

输入 #1复制

复制代码
4
2 3 4 5

输出 #1复制

复制代码
8

输入 #2复制

复制代码
7
6 6 7 8 4 2 4

输出 #2复制

复制代码
14

说明/提示

样例解释

  • 对于第一组数据,下面是一棵可能的树:

其大小为 8,其中叶子 3,5,6,8 的深度分别为 2,3,4,5。容易证明没有大小 ≤7 的树符合题意。

数据规模与约定

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

  • Subtask 0(0 pts):样例。
  • Subtask 1(30 pts):k=2。
  • Subtask 2(30 pts):a1=a2=⋯=ak。
  • Subtask 3(40 pts):无特殊限制。依赖于子任务 0∼2。

对于所有数据,保证 1≤k≤105,2≤ai≤105,且保证存在至少一棵这样的树。

思路:

我们可以简单的创造一组数据,画出它的图,我们会发现其最深节点的深度不应当超过要求子叶节点中的最深深度。所以最大深度就是最少节点树的高度,假设有n个深度的叶子结点,当最大深度为m的时候,我们已经确认个一个叶子节点在m层,剩下还有n-1个叶子节点。所以树的叶子结点就是m+n-1。

代码如下:

复制代码
#include<iostream>
using namespace std;
const int N = 1e5+5;
int n;
int num[N];
int maxh = -1e6;
int main()
{
	cin >> n;
	for(int i = 1 ; i <= n ; i++)
	{
		int t;
		cin >> t;
		if(maxh < t)
		maxh = t;
	}
	cout << maxh + n - 1;
	return 0;
}
相关推荐
全糖可乐气泡水6 分钟前
Codex适配国产信创环境安装部署与技术适配全解析
开发语言·git·python·算法·百度
h_a_o777oah19 分钟前
状态机+划分型 DP :深度解析K-划分问题下 DP 状态的转移逻辑(洛谷P2679 P2331 附C++代码)
c++·算法·动态规划·acm·状态机dp·划分型dp·滚动数组优化
05候补工程师25 分钟前
从算法理想向工程现实的跨越:SLAM 核心架构、思维误区与 Nav2 实战避坑指南
人工智能·算法·安全·架构·机器人
手写码匠2 小时前
Android 17 适配实战指南:新特性解读、隐私变更与迁移全攻略
人工智能·深度学习·算法·aigc
珊瑚里的鱼2 小时前
leetcode42雨水
算法·leetcode
水木流年追梦2 小时前
大模型入门-大模型的推理策略
开发语言·python·算法·正则表达式·prompt
生成论实验室2 小时前
用事件关系网络重新理解AI(三):激活函数、微调与元学习
人工智能·学习·算法·语言模型·可信计算技术
Narv工程师2 小时前
嵌入式机器人控制器算力评估:从DMIPS到WCET的完整指南
人工智能·算法·机器学习
蒟蒻的贤2 小时前
实训1227
算法
liulilittle3 小时前
TCP UCP:基于卡尔曼滤波的BBR增强型拥塞控制算法
linux·网络·c++·tcp/ip·算法·c·通讯