zoukankan      html  css  js  c++  java
  • [Tree] [洛谷] P1087 FBI树

    建树

    输出

    #pragma GCC optimize(2)
    #include <cstdio>
    #include <iostream>
    #include <cstdlib>
    #include <cmath>
    #include <cctype>
    #include <string>
    #include <cstring>
    #include <algorithm>
    #include <stack>
    #include <queue>
    #include <set>
    #include <map>
    #include <ctime>
    #include <vector>
    #include <fstream>
    #include <list>
    #include <iomanip>
    #include <numeric>
    using namespace std;
    typedef long long ll;
    
    const int MAXN = 1e6 + 10;
    
    struct node
    {
        string trr;
        char type;
    
    }tree[MAXN];
    
    char judge(string x)
    {
        bool o = false, z = false;
        for(unsigned int i = 0; i < x.length(); i++)
        {
            if(x[i] == '0')
                o = true;
            if(x[i] == '1')
                z = true;
        }
        if(z && !o)
            return 'I';
        else if(o && !z)
            return 'B';
        else
            return 'F';
    }
    
    void build(int now, string x)
    {
        tree[now].trr = x;
    
        tree[now].type = judge(x);
        
        if(x.length() == 1)
            return ;
    
        string fst = "";
    
        string lst = "";
    
        for(unsigned int i = 0; i < x.length() / 2; i++)
            fst = fst + x[i]; 
    
        for(unsigned int i = x.length() / 2; i < x.length(); i++)
            lst = lst + x[i]; 
    
        build(now * 2, fst);
    
        build(now * 2 + 1, lst);
    
    }
    
    void put(int now)
    {
        if(tree[now].trr.length() < 1)
            return;
        else
        {
            put(now * 2);
            
            put(now * 2 + 1);
    
            cout<<tree[now].type;
        }
    }
    
    
    
    int main()
    {
        ios::sync_with_stdio(false);
    
        cin.tie(0);     cout.tie(0);
    
        int N;
    
        cin>>N;
    
        string x;
    
        cin>>x;
    
        build(1, x);
    
        put(1);
    
        return 0;
    }
  • 相关阅读:
    sort exam
    一个简单的爬虫
    php双色球
    计算水果的总价格
    jquery三级导航,级联菜单精简
    判断学生成绩
    服务器信息展示
    服务器信息(二)一些常量名和时间戳的简单了解
    天气预报ajax+php(可惜用的是已经失效的api)
    mysql基础(二)
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270506.html
Copyright © 2011-2022 走看看