The Falling Leaves 【UVA - 699 】

二叉搜索树(树表查找) 32>30,从32结点的左子树查找,左子树为空,查找不成功,创建一个新的结点插入为32结点的左节点。二叉查找树删除的特殊情况:p==q,p的左子树的右节点为空,即p的左节点就是p的直接前驱s(左子树的最右结点,不用到最右结点了),那么删除s时,q的左孩子是s的左孩子。第二层:2(1,3)、6(5,7)、 10(9,11)、14(13,15)【num(num-2^1+1,num+2^1-1)】①若二叉查找树为空,创建一个新的结点s,将待插入关键字放入新结点的数据域,s结点作为根结点,左右子树均为空; 阅读详情

Each year, fall in the North Central region is accompanied by the brilliant colors of the leaves on the trees, followed quickly by the falling leaves accumulating under the trees. If the same thing happened to binary trees, how large would the piles of leaves become?

We assume each node in a binary tree ”drops” a number of leaves equal to the integer value stored in that node. We also assume that these leaves drop vertically to the ground (thankfully, there’s no wind to blow them around). Finally, we assume that the nodes are positioned horizontally in such a manner that the left and right children of a node are exactly one unit to the left and one unit to the right, respectively, of their parent. Consider the following tree on the right:

The nodes containing 5 and 6 have the same horizontal position (with different vertical positions, of course). The node containing 7 is one unit to the left of those containing 5 and 6, and the node containing 3 is one unit to their right. When the ”leaves” drop from these nodes, three piles are created: the leftmost one contains 7 leaves (from the leftmost node), the next contains 11 (from the nodes containing 5 and 6), and the rightmost pile contains 3. (While it is true that only leaf nodes in a tree would logically have leaves, we ignore that in this problem.)

Input

The input contains multiple test cases, each describing a single tree. A tree is specified by giving the value in the root node, followed by the description of the left subtree, and then the description of the right subtree. If a subtree is empty, the value ‘-1’ is supplied. Thus the tree shown above is specified as ‘5 7 -1 6 -1 -1 3 -1 -1’. Each actual tree node contains a positive, non-zero value. The last test case is followed by a single ‘-1’ (which would otherwise represent an empty tree).

Output

For each test case, display the case number (they are numbered sequentially, starting with 1) on a line by itself. On the next line display the number of “leaves” in each pile, from left to right, with a single space separating each value. This display must start in column 1, and will not exceed the width of an 80-character line. Follow the output for each case by a blank line. This format is illustrated in the examples below.

Sample Input

5 7 -1 6 -1 -1 3 -1 -1

8 2 9 -1 -1 6 5 -1 -1 12 -1

-1 3 7 -1 -1 -1

-1

Sample Output

Case 1: 7 11 3

Case 2: 9 7 21 15

题意:

一组数据根据前序遍历原则输入,当某个节点的 左/右 儿子为空时,它的 左/右 儿子的值为 -1。

以根节点为准线,它的左减右加。求从左到右各个位置上的节点之和为多少。

先将数据依次输入,还原成一颗树。

并用map记录每个位置的节点和,遍历,依次输出。

代码:

#include<cstdio>
#include<cstring>
#include<map>
#include<iostream>
using namespace std;
map<int,int>q;

int tt;

void sove(int t)
{
    int x;
    scanf("%d",&x);
    if(x!=-1)
    {
        q[t]+=x;
        sove(t-1);//左
        sove(t+1);//右
    }
}
int main()
{
    int k=1;
    map<int,int>::iterator it;

    while(~scanf("%d",&tt))
    {
    	if(tt==-1)
    	   break;

        q.clear();

        q[1]+=tt;
        sove(0);//左
        sove(2);//右

        printf("Case %d:\n",k++);
        int flag=0;

        for(it=q.begin();it!=q.end();it++)
        {
            if(flag==0)
                cout<<it->second;
            else
                cout<<" "<<it->second;
            flag=1;
        }
        cout<<endl<<endl;
    }
    return 0;
}

 

UVA699 下落的树叶 The Falling Leaves(二叉树的递归遍历建树) UVA699 下落的树叶 The Falling Leaves bool型的函数一定不能忘了组后要加上return 1;或者return 0;!!!! #include<bits/stdc++.h> using namespace std; #define debug(x) cout<<"# "<<x<<" "<<endl; type... 阅读详情

相关推荐

STM32H723ZGT6-单ADC极限采样率实战与分辨率权衡

本文通过实战测试,深入探讨了STM32H723ZGT6微控制器中单ADC模块的极限性能。文章详细展示了如何通过CubeMX配置时钟树、ADC参数、定时器触发与DMA,实测得出在16位分辨率下最高稳定采样率约为4.6MHz,而将分辨率降至8位后,采样率可提升至约6.2MHz,并分析了速度与分辨率之间的关键权衡,为高速数据采集项目提供选型与优化参考。

weixin_29240711的博客 297

【数据结构】二叉查找树(BST)

二叉查找树(Binary Search Tree,BST),又叫做二叉排序树、二叉搜索树,是一种对查找和排序都有用的特殊二叉树。二叉查找树的特性:左子树

m0_46628950的博客 8174

零基础实战:YOLO检测头自定义替换全攻略

本文为零基础用户提供了YOLO检测头自定义替换的完整实战指南。通过将检测头比作汽车的“方向盘”,文章详细阐述了为何需要替换、如何寻找和集成新检测头模块、修改配置文件以及最终训练验证的全过程,旨在帮助用户针对特定任务(如小目标检测)提升模型性能。

perl8的博客 255

二叉查找树

二叉查找树是二叉树中最常用的一种类型,也叫二叉搜索树。顾名思义,二叉查找树是为了实现快速查找而生的。不过,它不仅仅支持快速查找一个数据,还支持快速插入、删除一个数据。它是怎么做到这些的呢? 这些都依赖于二叉查找树的特殊结构。二叉查找树要求,在树中的任意一个节点,其左子树中的每个节点的值,都要小于这个节点的值,而右子树节点的值都大于这个节点的值。 ...

码农笔记 7664

百度智能云ASR实战:5分钟搞定Unity语音转文字(含完整代码)

本文详细介绍了如何在Unity中集成百度智能云ASR服务,实现高效的语音转文字功能。从环境配置、音频处理到服务端通信,提供完整代码示例和实战优化技巧,帮助开发者快速实现语音交互功能,适用于游戏开发、XR应用等场景。

ujm56789012的博客 215

Centos7网络配置(设置固定ip)

刚安装完系统,有的人尤其没有勾选自动网络配置的情况下,是访问不了外网的,本机也连不通虚拟机。或者现在有的是动态ip,几次之后启动ip地址就变了,会导致其他软件或程序之前连接配置要重新更改,很麻烦,下面讲解一下如何配置网络,如何设置成固定ip。

个人笔记git:https://gitee.com/tlangp/note.git 8054

二叉排序树(二叉查找树、二叉搜索树)(图解+完整代码)

图解二叉排序树(二叉查找树、二叉搜索树)的插入操作、查找操作、删除操作以及完整的代码实现

weixin_54186646的博客 10万+

气象大模型光伏功率预测中的应用:从短期,超短期,中长期的实现与开源代码详解

本文详细介绍了基于大模型的光伏功率预测方法,涵盖超短期(15分钟-1小时)、短期(1-6小时)和中长期(1天-1周)预测。文章首先讨论了数据准备与预处理,包括历史功率、气象、天文和电站特性数据的收集与特征工程。随后,针对不同预测需求,提出了多种深度学习模型:超短期预测采用1DCNN-LSTM混合模型,短期预测使用Transformer模型,中长期预测则通过多尺度特征提取模型和概率预测方法处理不确定性。文章还提供了模型训练、评估、部署和优化的完整流程,并开源了代码实现。未来研究方向包括结合数值天气预报、开发时

专注AI大模型,软件混淆,授权 1577

数据结构树-->二叉查找树\二叉排序树

二叉查找树\二叉排序树 二叉查找树是一种有序的二叉树,也叫儿叉排序树,它在二叉树的基础上添加了位置排序的规则。 规则: 每颗子树的根节点值比左子树大,比右子树小。 二叉查找树的缺点: 二叉查找树有了排序,但当我们的数据顺序与大小规律一致是就会发现,二叉查找树基本退化为了链表,导致达不到二叉 查找树快速查找的目的。 后续我们在介绍平衡二叉树的时候会解决之一问题。 1. 二叉查找树的查找 更具儿叉查找树的特性二叉查找树查找元素快速简单,快速:二叉查找树查找基本就是二分查找,所以快速。 2. 二叉查找树的插入

路漫漫其修远兮 2621

一步步带你用C#开发Modbus通信上位机(附完整代码与工程思路)

Modbus上位机开发指南(C#实现) 本文详细介绍使用C#开发Modbus上位机系统的全过程,覆盖RTU和TCP两种协议。内容包含:1)需求分析与技术选型(WinForms+NModbus4);2)分层架构设计(UI/业务/通信层);3)通信层核心代码实现(串口/以太网连接、数据读写);4)功能模块开发(设备管理、数据采集、远程控制)。提供可直接复用的Modbus RTU客户端代码示例,包含连接管理、线圈读写、寄存器操作等工业场景必备功能。通过系统化的开发流程,帮助开发者快速构建稳定可靠的Modbus监控

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 821

在Android中实现SIM卡的读写操作

在上述代码中,我们创建了一个PhoneStateListener的实例,并重写了onSimStateChanged方法来处理SIM卡状态改变的事件。然后,我们通过调用telephonyManager的listen方法注册了这个监听器,并指定了要监听的事件类型为SIM卡状态的改变。在上述代码中,我们调用telephonyManager的sendUssdRequest方法来发送USSD命令,并通过TelephonyManager.UssdResponseCallback来处理USSD响应和发送失败的情况。

2301_79326510的博客 926

【UVA 699 --- The Falling Leaves】二叉树

【UVA 699 --- The Falling Leaves】二叉树 Description Each year, fall in the North Central region is accompanied by the brilliant colors of the leaves on the trees, followed quickly by the falling leaves ac...

来日浅谈的博客 449

YOLO 系列专栏(二十九)YOLO26 × StarNet 轻量化涨点方案(CVPR 2024)轻量化、主干改进篇 | 星星卷积虽小,却蕴藏着巨大的高效潜力

StarNet 出自 CVPR 2024 轻量化主干网络工作,核心创新是,依靠逐元素乘法实现高阶特征融合,在几乎不增加参数量与 FLOPs 的前提下,大幅提升特征表达能力,天然适合等多任务统一建模。本文将 StarNet 完整替换 YOLO26 原有主干,保留 YOLO26 无 NMS 检测头与轻量化结构,实现,并提供。

qq_36130719的博客 410

UVa699 The Falling Leaves

// UVa699 The Falling Leaves // Rujia Liu // 题意:给一棵二叉树,每个节点都有一个水平位置:左儿子在它左边1个单位,右儿子在右边1个单位。从左向右输出每个水平位置的所有结点的权值之和。按照递归方式输入,-1表示空树 // 算法:在“建树”的同时计算,无须真正的把树保存下来 #include #include using namespace std;

zhouzhijian97的博客 304

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

UVa 699 - The Falling Leaves

树的题目.

一只冰熊 981

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

UVa699-The Falling Leaves(下落的叶子)

UVa 699 - The Falling Leaves(下落的叶子) 给一棵二叉树,每个节点都有一个水平位置:左子节点在它左边1个单位,右子节点在右边一个单位。从左向右输出每个水平位置的所有节点的权值之和。按照递归(先序)方式输入,用-1表示空树。 样例输入: 5 7 -1 6 -1 -1 3 -1 -1 8 2 9 -1 -1 6 5 -1 -1 12 -1 -1 3 7 -1 -1

Never Settle ! 332

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

uva 699 - The Falling Leaves

// uva 699 - The Falling Leaves // 题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=104&page=show_problem&problem=640 // 题目大意:给出一棵二叉树先序遍历的结果,-1表示节点为空,每个节点垂直往下落叶,落叶的数量

yzx930420的专栏 360

UVA 699 The Falling Leaves

https://vjudge.net/problem/UVA-699 题目 水得不行,就不说了…… 题解 水题,只是注意数组不能开太大……直接就TLE了(缩小10倍用了0.9秒,服了……) AC代码(其实没有看的必要) #include<bits/stdc++.h> using namespace std; #define MAXN 1000007 ...

159

uva 699 The Falling Leaves

uva 699 题目链接 题目大意:给一棵二叉树(先序),求每一列的和,从左到右输出 5,6是重合的与1是一列 解题思路:从数轴中间开始左孩子往左移,右孩子往右移,将值加进去 结果就是答案 注意问题:值为-1,则表示为空,                   树为空输入结束                   数据按先序读入            

375

uva 699 The Falling Leaves (二叉树)

uva 699 The Falling Leaves Each year, fall in the North Central region is accompanied by the brilliant colors of the leaves on the trees, followed quickly by the falling leaves accumulating und

总有那么一群人喜欢盯着我的博客看,估计这是他们见过最长的博客名,我必须得告诉他们博客名最长可以写多长 744

下落的树叶 The Falling Leaves UVa 699

下落的树叶 The Falling Leaves 题述 给一棵二叉树,每个结点都有一个水平位置:左子结点在它的左边一个单位,右子结点在它的右边一个单位。从左向右输出每个水平位置的所有结点的权值之和。如图所示,从左到右的三个位置的权和分别为7,11,3。按照递归(先序)方式输入,用-1表示空树。 样例输入 5 7 -1 6 -1 -1 3 -1 -1 8 2 9 -1 -1 6 5 -1 -1 12...

qq_43749262的博客 422

uva-699 The Falling Leaves

Each year, fall in the North Central region is accompanied by the brilliant colors of the leaves on the trees, followed quickly by the falling leaves accumulating under the trees. If the same thing ha

超 1705

UVA699-例题6-10 下落的树叶(The Falling Leaves,UVa 699)

原题链接: UVa-699 题目大意:   题意为给一棵二叉树,求从左向右输出每个水平位置的所有结点的权值之和。输入按照递归(先序)方式,-1表示空树。 解题思路:  本题是《算法竞赛入门经典》第六章例题,本题的主要解题思路就是使用递归根据输入直接计算每个水平位置的的权值之和。  一开始看完题之后也想着用数组来存储每一列的权值之和。但是由于下标的问题感觉处理起来过于麻烦。就有

Miracle42的博客 1505

UVA699 The Falling Leaves 解题报告

先序递归隐式建树,同时统计每一列的和。我们并不需要真的建树,在递归的过程中我们无需知道每个节点的具体编号,只需要知道当前节点列编号即可,为了方便实现,我们将整棵树的根节点视为0列,往左为-1列,往右为+1列,这样做列数会有负数,所以使用map来维护每一列的和。给一棵二叉树,每个结点都有一个水平位置:左子结点在它左边1个单位,右子结点在右边1个单位。从左向右输出每个水平位置的所有结点的权值之和。如图6-7所示,从左到右的3个位置的权和分别为7,11,3。按照递归(先序)方式输入,用-1表示空树。

qq_45554473的博客 449
上一篇: Tree【 UVA - 548 】
下一篇: 度度熊学队列 【HDU - 6375】
Daisy's一乐景三
博客等级 码龄8年 2粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值