蓝桥杯2023年第十四届省赛真题-子树的大小

在这里插入图片描述
利用完全m叉树的编号特点,依次累加各个非叶节点的子节点树,再加上k结点本身。

#include<stdio.h>
int main(){
	long long n, m, k, t, count, l, r, flag;
	scanf("%lld", &t);
	while(t--){//迭代计算K结点的子节点个数,直至加完该子树的最后一个非叶节点的子节点为止 
		scanf("%lld%lld%lld", &n, &m, &k);
		l = r = k;
		count = flag = 1;//至少含有k结点本身 
		while(flag){
			//最左边子结点的编号;之前的k-1个结点每个都有m个子节点,再加上根节点和k结点本身 
			l = (l - 1) * m + 2; 
			r = r*m + 1;//最右子节点的编号,如果满m个子节点的话 
			if(r > n){
				r = n;//k结点的总子节点树不满m个,则更新 
				flag = 0; //找到了最后的非叶节点,无需继续 
			} 
			if(l <= n) count += r - l + 1;//加上当前结点的子节点 
		}
		printf("%lld\n", count); 
	}
	return 0;
}

相关推荐

  1. C语言-2023-砍

    2024-03-13 18:40:04       57 阅读
  2. 2023----棋盘

    2024-03-13 18:40:04       61 阅读
  3. 2023-阶乘求和

    2024-03-13 18:40:04       64 阅读
  4. 2023-飞机降落

    2024-03-13 18:40:04       53 阅读
  5. 2023-飞机降落

    2024-03-13 18:40:04       37 阅读
  6. 2019-不同

    2024-03-13 18:40:04       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-13 18:40:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-13 18:40:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-13 18:40:04       82 阅读
  4. Python语言-面向对象

    2024-03-13 18:40:04       91 阅读

热门阅读

  1. C++标准输入输出和名字空间

    2024-03-13 18:40:04       44 阅读
  2. C#接口和泛型

    2024-03-13 18:40:04       47 阅读
  3. python面向对象练习一

    2024-03-13 18:40:04       42 阅读
  4. 【SpringCloud微服务实战05】Feign 远程调用

    2024-03-13 18:40:04       49 阅读
  5. SpringBoot总结-配置管理和日志管理

    2024-03-13 18:40:04       39 阅读
  6. ChatGPT学术论文润色的方法与步骤教程

    2024-03-13 18:40:04       48 阅读
  7. 图片流……

    2024-03-13 18:40:04       42 阅读
  8. SystemVerilog Constants、Processes

    2024-03-13 18:40:04       42 阅读
  9. DockerCompose的介绍、安装与常用命令

    2024-03-13 18:40:04       45 阅读
  10. vue2和vue3的区别?

    2024-03-13 18:40:04       51 阅读