zoukankan      html  css  js  c++  java
  • POJ3630:Phone List——题解

    http://poj.org/problem?id=3630

    简单的trie树问题,先添加,然后每个跑一边看中途有没有被打上结束标记即可。

    #include<cstdio>
    #include<cstring>
    using namespace std;
    struct node{
        bool ed;
        int son[11];
        void clear(){
        memset(son,0,sizeof(son));
        ed=0;
        }
    }tree[100001];
    char s[10001][11];
    int tot;
    void insert(int k){
        int l=strlen(s[k]);
        int now=1;
        for(int i=0;i<l;i++){
        if(tree[now].son[s[k][i]-'0']==0){
            tot++;
            tree[now].son[s[k][i]-'0']=tot;
        }
        now=tree[now].son[s[k][i]-'0'];
        }
        tree[now].ed=1;
        return;
    }
    bool check(int k){
        int l=strlen(s[k]);
        int now=1;
        for(int i=0;i<l;i++){
        if(tree[now].son[s[k][i]-'0']==0){
            return 0;
        }
        if(tree[now].ed)return 1;
        now=tree[now].son[s[k][i]-'0'];
        }
        return 0;
    }
    int main(){
        int t;
        scanf("%d",&t);
        while(t--){
        for(int i=1;i<=100000;i++)tree[i].clear();
        tot=1;
        int n;bool ok=0;
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%s",s[i]);
            insert(i);
        }
        for(int i=1;i<=n;i++){
            if(check(i)){
            ok=1;
            break;
            }
        }
        if(ok==1)printf("NO
    ");
        else printf("YES
    ");
        }
        return 0;
    }
  • 相关阅读:
    翻转数组
    C语言之指针
    C语言之结构体
    C语言之函数
    数据结构之typedef
    数据结构之树
    数据结构之链表
    数据结构之队列
    数据结构之数组
    ssh远程连接控制 linux 口令、密钥连接
  • 原文地址:https://www.cnblogs.com/luyouqi233/p/7859297.html
Copyright © 2011-2022 走看看