当前位置: 首页 > news >正文

洛谷 P2171 Hz吐泡泡

P2171 Hz吐泡泡

题目背景

Hz大大是一种可爱的动物(神)。他很喜欢吐泡泡(更喜欢写作业)。

题目描述

这天,Hz大大心血来潮,吐了n个不同的泡泡玩(保证没有重复的泡泡)。因为他还要写作业,所以他请你帮他把这些泡泡排序成树(左子树<=根<右子树)。输出它的后序遍历。

输入输出格式

输入格式:

 

共2行。

第一行,1个整数n。(1<=n<=300000)

第二行,n个数,代表泡泡的大小。

 

输出格式:

 

共2行。

第一行,输出树的深度。

第二行,输出数的后序遍历。

详见样例输出。

 

输入输出样例

输入样例#1: 复制
8
1 4 3 9 10 35 2 7
输出样例#1: 复制
deep=5
2
3
7
35
10
9
4
1

说明

水题一道。

思路:模拟堆

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
int n,cnt,deep,bns,root;
struct data{
    int ls,rs,val;
}tr[300007];
int max(int a,int b){
    if(a<b)    return b;
    else return a;
}
void insert(int& rt,int x){
    ++bns;
    if(!rt){ rt=++cnt;tr[rt].val=x;deep=max(deep,bns);return; }
    if(x>tr[rt].val)    insert(tr[rt].rs,x);
    else insert(tr[rt].ls,x);
    return;
}
void dfs(int rt){
    if(tr[rt].ls)    dfs(tr[rt].ls);
    if(tr[rt].rs)    dfs(tr[rt].rs);
    printf("%d\n",tr[rt].val);
}
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        bns=0;int x;
        scanf("%d",&x);
        insert(root,x);
    }
    printf("deep=%d\n",deep);
    dfs(root);
}

 

转载于:https://www.cnblogs.com/cangT-Tlan/p/7965438.html

相关文章:

  • MFC OnCtlColor 工业控制中的陷阱
  • appium+python自动化34-获取元素属性get_attribute
  • 英语介词用法
  • jQuery基础教程
  • 在xx网站上, 用什么介词?
  • 【SqlServer】在SqlServer中把数据导入导出为Excel文件
  • exp之flashback_scnflashback_time
  • JAVASCRIPT高程笔记-------第 七章 函数表达式
  • 适应性超强的focus
  • 内存泄漏
  • 首页列表显示全部问答,完成问答详情页布局
  • POJ 2057 The Lost House 树形DP+贪心
  • JAVA Http Basic auth
  • 如何两个栈实现队列?两个队列实现栈?
  • Java之字符流操作-复制文件
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • C语言笔记(第一章:C语言编程)
  • gcc介绍及安装
  • gf框架之分页模块(五) - 自定义分页
  • golang 发送GET和POST示例
  • Markdown 语法简单说明
  • Otto开发初探——微服务依赖管理新利器
  • PHP那些事儿
  • Spring Boot快速入门(一):Hello Spring Boot
  • 和 || 运算
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 判断客户端类型,Android,iOS,PC
  • 前端之Sass/Scss实战笔记
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 用quicker-worker.js轻松跑一个大数据遍历
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #数学建模# 线性规划问题的Matlab求解
  • %@ page import=%的用法
  • (三)终结任务
  • (四)Controller接口控制器详解(三)
  • (算法二)滑动窗口
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一一四)第九章编程练习
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .net 提取注释生成API文档 帮助文档
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET命名规范和开发约定
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • @Transaction注解失效的几种场景(附有示例代码)
  • [ C++ ] STL---stack与queue
  • [BUUCTF 2018]Online Tool
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • [Hive] 常见函数
  • [hive] 窗口函数 ROW_NUMBER()
  • [JavaEE]线程的状态与安全
  • [JAVA设计模式]第二部分:创建模式