蓝桥杯3526 子树的大小 | 数学规律

server/2025/1/20 14:17:12/

题目传送门

-


这个题目是一个数学题,比较好的方法是从上往下寻找子树的最左和最右的结点,每层统计子结点数,到树的底部时打印结果。
如何求最左、最右的子结点呢?
对于第i个结点,其前面有i-1个结点,每个结点各有m个孩子,再加上1号结点(树根)和子结点自己,得到最左子结点下标为(i-1)*m+2。比如上图中的结点3,其前面有结点1、2,结点1的子结点为2、3、4,结点2的子结点为5、6、7,所以结点3的最左子结点下标为(3-1)*3+1+1 = 8。同理可得,最右子结点的下标为(i-1)*m+m+1


import math
t = int(input())
for _ in range(t):n, m, k = map(int, input().split())lc, rc = k, k  # 最左、右孩子cnt = 1while 1:lc = (lc-1)*m + 2rc = (rc-1)*m + m + 1if lc > n:print(cnt)breakelif rc > n:cnt = cnt + n - lc + 1print(cnt)breakelse:cnt = cnt + rc -lc + 1

END✨



http://www.ppmy.cn/server/159905.html

相关文章

R语言的并发编程

R语言的并发编程 引言 在现代计算中,如何有效地利用计算资源进行数据处理和分析已成为一个重要的研究方向。尤其在大数据时代,数据量的急剧增加让单线程处理方式显得力不从心。为了解决这一问题,各种编程语言都开展了并发编程的研究和应用。…

adb 常用命令总结

adb logcat -v time | grep -iE "AndroidRuntime|MyHttpRequest|getResponseFromModel|Exception|OkhttpClient"这行命令的作用是使用 adb logcat 命令来过滤和显示安卓设备上的日志信息,其中包括特定的日志条目。让我们逐一解释这段命令: a…

通过内核模块按fd强制tcp的quickack方法

一、背景 tcp的quickack功能是为了让ack迅速回发,快速响应,减少网络通讯时延,属于一个优化项,但是tcp的quickack是有配额限制的,配置是16个quick,也就是短时间内quickack了16次以后,这个配额为…

NSIS 创建一键安装程序

nsis 安装redis 、mysql 、jdk navicat、 notepad、 环境变量只能设置一次 ,多次 只有最后一次生效 ; 函数:检查目录是否已在 PATH 中 Function setPath; 首先获取当前的 PATH 环境变量ReadEnvStr $0 PATH; 检查是否成功读取 PATH 环境变量StrCmp $0 &q…

【C++】list容器

目录 学习途径 list的使用 list的一些构造 迭代器说明 接口使用 迭代器失效问题 list和vector对比 模拟实现list 迭代器的模拟(重点) List.h文件 学习途径 在学习list之前,我们可以查询一些相关文档来学习! 文档详情&a…

Redis学习笔记1【数据类型和常用命令】

Redis学习笔记 基础语法 1.数据类型 String: 最基本的类型,可以存储任何数据,例如文本或数字。示例值为 hello world。Hash: 用于存储键值对,适合存储对象或结构体。示例值为 {"name": "Jack", "age": 21}。…

sourceinsight主题配置 sourceinsight绿色护眼主题下载

良好的开发环境对提高效率和舒适度至关重要。Source Insight 作为一种流行的源代码编辑器,用户可以根据个人需求更换主题。本文将为您介绍“sourceinsight主题配置 sourceinsight绿色护眼主题下载”,帮助您使用中这一功能,并提供绿色护眼主题的下载资源。 图1:Source Insig…

02内存结构篇(D2_剖析运行数据区)

目录 学习前言 一、程序计数器 1. 作用 2. 存储的数据 3. 异常 三、Java虚拟机栈 1. 栈帧 1.1. 局部变量表 存储内容 存储容量 其他 1.2. 操作数栈 作用 存储内容 存储容量 1.3. 动态连接 1.4. 方法返回 1.5. 附加信息 2. 栈异常 四、本地方法栈 1. 本地方…