首页 > 其他分享 >蓝桥杯练习笔记(十六)

蓝桥杯练习笔记(十六)

时间:2024-04-02 16:03:13浏览次数:15  
标签:左子 练习 res ll 右子 笔记 蓝桥 节点

蓝桥杯练习笔记(十六)

一、

在这里插入图片描述

  • 输入示例:
3
1 2 1
11 3 4
74 5 3

在这里插入图片描述

这是用到了m叉树的结论:对于某个m叉树的一个节点n,假如其有完整子树,则其左子节点l为l=(n-1)m+2,右子节点r为r=mn+1。基于此我们可以快速判断这个数在某些节点处的具体情况。比如是否是满叶子等等。

  • 蓝桥官网题解:
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
int main()
{
  int t;
  scanf("%d",&t);
  while(t--)
  {
      ll n,m,k;
      scanf("%lld%lld%lld",&n,&m,&k);
      ll l=k,r=k;//初始化左右子节点
      ll res=1,ans=1;//初始化每一行的节点数和总节点数
      while(r*m+1<=n)//当右子节点编号小于n时,说明该行它的子节点全部存在
      {
         res*=m;//全部存在时,直接*m
         l=(l-1)*m+2; //左子节点的左子节点
         r=r*m+1; //右子节点的右子节点
       //    他们之间就第k的节点的子节点
         ans+=res; //当全部存在时,加上该层所有子节点个数
      }
//出来之后,说明当前这一行,以第k个节点为根节点的子节点不完全存在,甚至可能没有
      l=(l-1)*m+2;//由于循环打断,右边界无所谓,因为已经出界,左边界却没有更新,所以需要更
      ans+=max(0ll,n-l+1);//比较需要时同等数据类型,因为有可能是负数,最后一行一个子节点无
      cout<<ans<<endl;
  }
  return 0;
}

标签:左子,练习,res,ll,右子,笔记,蓝桥,节点
From: https://blog.csdn.net/m0_73902771/article/details/137273343

相关文章

  • 地平线旭日x3 deeplav3训练 分割模型训练流程(2024.4.2 笔记)
    地平线x3开发资料,版本2.6.2b旭日X3派用户手册https://developer.horizon.ai/api/v1/fileData/documents_pi/Quick_Start/Quick_Start.html地平线X3J3算法工具链https://developer.horizon.cc/api/v1/fileData/horizon_xj3_open_explorer_cn_doc/oe_mapper/source/advanced_con......
  • CS571 W9/10 React Native1/2 HW7/8 笔记
    1.ReactNative基本常识1.与安卓设备连接安卓下载Expo,使用USB连接电脑,打开手机ADB调试。在Console里输入npmstart以后戳a在安卓设备上运行。如果提示SDK版本太低检查一下有没有npminstall2.ReactNative的组件ReactNative组件在不同的平台上会被翻译成不......
  • CS571 W6/HW5 -React3 笔记
    1.React返回多个组件functionComponent(){return(<p>一个p标签</p><h1>一个一级标题</h1>)}对于不同的组件,需要用小括号括起来,否则React只会返回最上面的那个。如果是整个组件返回,用div标签括起来另外,不要滥用空标签<>,例如使用<Carousel>和......
  • 蓝桥杯T5合根植物——并查集模板题
    5.合根植物-蓝桥云课(lanqiao.cn) #include<bits/stdc++.h>usingnamespacestd;intm,n,pre[1000000];set<int>s;intfind(intx){if(pre[x]==x)returnx;returnfind(pre[x]);}intmain(){//请在此输入您的代码cin>>m>>......
  • 蓝桥杯备赛指南
    蓝桥杯备赛指南大学C组枚举fromenumimportEnumclassWeekday(Enum):monday=1tuesday=2wednesday=3thirsday=4friday=5saturday=6sunday=7print(Weekday.wednesday)#Weekday.wednesdayprint(type(Wee......
  • 黑马鸿蒙笔记 4
    目录17.ArkUI-状态管理-@Observed和@ObjectLink18.ArkUI-页面路由19.ArkUI-属性动画和显式动画20.ArkUI-组件转场动画17.ArkUI-状态管理-@Observed和@ObjectLink  这个task[],找到它的定义 在数据类型上加@Observed要把这一段单独抽取出来,才可以加@ObjectLink......
  • JavaWeb学习笔记——第十二天
    SpringBootWeb案例(三)登录功能LoginController:importcom.zgg1h.pojo.Emp;importcom.zgg1h.pojo.Result;importcom.zgg1h.service.EmpService;importlombok.extern.slf4j.Slf4j;importorg.springframework.beans.factory.annotation.Autowired;importorg.springfram......
  • 计算机笔记(2)续20个
    21. 按位相或和相与,没有进位。比如11或10,结果就是11(运算过程是,个位0或1,结果是1;十位1或1,结果是1)01与10,结果是00(运算过程是,个位1与0,结果是0;十位0与1,结果是0)简单来说:与:0&0=0            0&1=0                    1&0=01&1=122. RAM......
  • 【文化课学习笔记】【数学】复数
    【数学】复数定义规定\(i^2=-1\),并称\(i\)为虚数单位。则\(i^3=-i,i^4=(i^2)^2=1,i^5=i^4\cdoti=i\),所以\(i^k\)具有周期性,周期为\(4\)。复数:\[z=a+bi(a,b\in\mathrmR)\]其中\(a\)为实部,\(b\)为虚部。注意:\(a\)和\(b\)都是实数。所有复数......
  • python项目练习——12.在线购物商城应用程序
    项目功能分析:这个项目可以让用户浏览商品、添加商品到购物车、进行结账等操作。这个项目涉及到数据库操作、用户认证、支付集成等方面的技术。代码示例:#models.pyfromdjango.dbimportmodelsfromdjango.contrib.auth.modelsimportUserclassProduct(models.Model)......