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);
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    poj 2773 利用欧拉函数求互质数
    poj3358:欧拉定理
    poj:2992 因子数量
    poj3696:同余方程,欧拉定理
    USACO5.4-Character Recognition
    hdu5017:补题系列之西安网络赛1011
    hdu5014:number sequence对称思想
    欧拉函数,欧拉定理例题整理
    POJ 3463 Sightseeing (次短路)
    POJ
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7965438.html
Copyright © 2011-2022 走看看