zoukankan      html  css  js  c++  java
  • L3-010. 是否完全二叉搜索树 https://www.patest.cn/contests/gplt/L3-010

    按照完全二叉树理解 n个数正好对应n个位置   镜像的写法最后在判断

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<iostream>
    #include<queue>
    #include<vector>
    #include<map>
    #include<math.h>
    using namespace std;
    #define INF 0x3f3f3f3f
    #define LL long long
    #define N 1000700
    int w[N],a[N],ans,dis[N],falg,n,vis[N];
    void Q(int e,int x,int y)
    {
        if(a[x]==-1)
        {
            a[x]=w[y];
            return ;
        }
        if(e>=a[x])
            Q(e,x*2,y);
        else
            Q(e,x*2+1,y);
    }
    void QQ(int x)
    {
        queue<int>Q;
        Q.push(x);
        while(Q.size())
        {
            int ww=Q.front();Q.pop();
            if(a[ww]==-1) continue;
            vis[ans++]=a[ww];
            Q.push(ww*2);
            Q.push(ww*2+1);
        }
    }
    int main()
    {
        int n;
        scanf("%d",&n);
        fill(a,a+N,-1);
        for(int i=1; i<=n; i++)
            scanf("%d",&w[i]);
        for(int i=1; i<=n; i++)
            Q(w[i],1,i);
        ans=1;
        QQ(1);
        for(int i=1;i<=n;i++)
            printf("%d%c",vis[i],i==n?'
    ':' ');
        int falg=0;
        for(int i=1;i<=n;i++)
            if(a[i]==-1)
                falg=1;
        if(!falg) printf("YES
    ");
        else printf("NO
    ");
        return 0;
    }
  • 相关阅读:
    js,js中使用正则表达式
    web开发中文件下载
    EL表达式
    Servlet Filter
    压缩文件 乱码问题(转载)
    MFC CopyDirectory
    SaveFileDialog
    Create Window
    CDateTimeCtrl 设置时间
    键值表
  • 原文地址:https://www.cnblogs.com/a719525932/p/6604747.html
Copyright © 2011-2022 走看看