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;
    }
  • 相关阅读:
    动态ip发布web+绑定域名
    JQuery选择器大全
    mysql触发器
    jquery选择器
    PHP5新语法学习
    Jquery中$.ajax()方法参数详解(转)
    svn笔记
    lsof命令
    新环境常用工具
    不会转载
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270506.html
Copyright © 2011-2022 走看看