zoukankan      html  css  js  c++  java
  • POJ 1056

    #include <iostream>
    #include <string>
    #define MAXN 50
    using namespace std;
    
    struct node
    {
        node * l;
        node * r;
        bool boo;
        node()
        {
            l = NULL;
            r = NULL;
            boo = false;
        }
    };
    
    
    bool ans;
    
    int _index;
    
    node res[2*MAXN+1];
    
    node * insert(node * root,string s,int index,int len)
    {
        if(s[index] == '0')
        {
            if(root->l == NULL)
            {
                root->l = &res[_index ++];
                root->l->boo = false;
                root->l->l = root->l->r = NULL;
                if(index == len-1)
                {
                    root->l->boo = true;
                    return root;
                }
            }
            else
            {
                if(index == len-1)
                {
                    ans = false;
                    return root;
                }
                if(root->l->boo == true)
                {
                    ans = false;
                    return root;
                }
            }
    
    
            root->l = insert(root->l,s,index+1,len);
            return root;
        }
        else
        {
            if(root->r == NULL)
            {
                root->r = &res[_index ++];
                root->r->boo = false;
                root->r->l = root->r->r = NULL;
                if(index == len-1)
                {
                    root->r->boo = true;
                    return root;
                }
            }
            else
            {
                if(index == len-1)
                {
                    ans = false;
                    return root;
                }
                if(root->r->boo == true)
                {
                    ans = false;
                    return root;
                }
            }
            root->r = insert(root->r,s,index+1,len);
            return root;
        }
    }
    
    int main()
    {
        //freopen("acm.acm","r",stdin);
        string s;
        int time = 0;
        while(cin>>s)
        {
            _index = 0;
            ans = true;
            node * root = &res[_index ++];
            root->boo = false;
            root->l = root->r = NULL;
            if(ans)
            {
                root = insert(root,s,0,s.length());
            }
            while(cin>>s)
            {
                if(s == "9")
                {
                    break;
                }
                if(ans)
                {
                    root = insert(root,s,0,s.length());
                }
            }
            cout<<"Set "<<++ time;
            if(ans == false)
            {
                cout<<" is not immediately decodable"<<endl;
            }
            else
            {
                cout<<" is immediately decodable"<<endl;
            }
        }
    }

    关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。 

    技术网站地址: vmfor.com

  • 相关阅读:
    Python2 升级Python3
    'builtin_function_or_method' object has no attribute 'translate'
    antd-mobile的DatePicker分钟精度半小时
    Windows10远程报错:由于CredSSP加密Oracle修正
    Nginx配置
    MySQL之索引优化
    Ubuntu下删除VMware的方法
    控制窗体的显示和隐藏
    os模块
    树莓派 使用3.5耳机口输出音频
  • 原文地址:https://www.cnblogs.com/gavinsp/p/4563240.html
Copyright © 2011-2022 走看看