zoukankan      html  css  js  c++  java
  • 【CodeVS4244】平衡树练习

    Description

    判断一些数字在一个数列中是否存在。

    Input

    第一行输入两个正整数m和n。

    第二行m个数字表示这个数列。

    第三行n个数字表示需要判断的数字。

    Output

    输出共一行n个0或1,0表示这个数字不存在,1表示存在。

    Sample Input

    2 2

    2 4

    2 5

    Sample Output

    1 0

    HINT

    输入数字保证不超过MaxInt。

    有节操的人不用set

    题解

    二叉排序树可以A

    #include<iostream>
    #include<cstdio>
    #define N 1000000
    using namespace std;
    struct tree
    {
        int lch,rch;
        int val;
    }t[N];
    int topt = 0;
    void add_tree(int &now,int val)
    {
        if (!now)
        {
            now = ++topt;
            t[now].val = val;
            return ;
        }
        if (val<t[now].val)
            add_tree(t[now].lch,val);
        else 
            add_tree(t[now].rch,val);
    }
    
    
    bool find(int now,int val)
    {
        if (!now) return false; //先判断这个
        if (val == t[now].val) return true;
        if (val < t[now].val) return find(t[now].lch,val);
        else return find(t[now].rch,val);
    }
    
    
    int main()
    {
        int n,m,val,root=0;
        scanf("%d%d",&m,&n); 
        printf("
    ");
        for (int i=1;i<=m;i++)
        {
            scanf("%d",&val);
            add_tree(root,val);
        }
        for (int i=1;i<=n;i++)
        {
            scanf("%d",&val);
            printf("%d ",find(root,val));
        }
    }
  • 相关阅读:
    Centos7新特性——systemd取代init管理服务
    Git初探
    Nginx内置变量
    Nginx初探
    PHP多进程初步
    golang消息队列nsq
    golang 的 go异步编程通道要注意的问题
    golang 连接池mysql
    golang centos运行方法
    golang go path和go mod的区别
  • 原文地址:https://www.cnblogs.com/liumengyue/p/5467976.html
Copyright © 2011-2022 走看看