zoukankan      html  css  js  c++  java
  • 洛谷 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
    ",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
    ",deep);
        dfs(root);
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    自习任我行第二阶段个人总结5
    自习任我行第二阶段个人总结4
    自习任我行第二阶段个人总结3
    自习任我行第二阶段个人总结2
    自习任我行第二阶段个人每日总结1
    bootstrap table
    log4j2 的使用
    新版本MySQL Server 5.7的免安装版本设置
    工作随笔 2016-5-19
    在windows 下安装启动redis
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7965438.html
Copyright © 2011-2022 走看看