zoukankan      html  css  js  c++  java
  • hdu1671 字典树

    比较简单,出现前缀。不过要释放空间。

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    struct trie
    {
        trie *next[10];
        int sum;
    };
    trie *root;
    char str[10002][11];
    void init()
    {
        root=(trie*)malloc(sizeof(trie));
        for(int i=0;i<10;i++)
            root->next[i]=NULL;
        root->sum=0;
    }
    void insert(char *s)
    {
        int i,j,len=strlen(s);
        trie *p=root,*q;
        for(i=0;i<len;i++)
        {
            int id=s[i]-'0';
            if(p->next[id]==NULL)
            {
                q=(trie*)malloc(sizeof(trie));
                for(j=0;j<10;j++)
                    q->next[j]=NULL;
                q->sum=0;
                p->next[id]=q;
            }
            p=p->next[id];
            p->sum++;
        }
    }
    int query(char *s)
    {
        int i,j,len=strlen(s);
        trie *p=root;
        for(i=0;i<len;i++)
        {
            int id=s[i]-'0';
            p=p->next[id];
        }
        if(p->sum>1)
            return 1;
        return 0;
    }
    void freetrie(trie *rt)
    {
        for(int i=0;i<10;i++)
            if(rt->next[i]!=NULL)
                freetrie(rt->next[i]);
            free(rt);
    }
    int main()
    {
        int flag,i,j,t,n;
        scanf("%d",&t);
        while(t--)
        {
            init();
            flag=0;
            scanf("%d",&n);
            for(i=0;i<n;i++)
            {
                scanf("%s",str[i]);
                insert(str[i]);
            }
            for(i=0;i<n;i++)
            {
                flag=query(str[i]);
                if(flag)break;
            }
            if(flag)
                printf("NO
    ");
            else printf("YES
    ");
            freetrie(root);//释放内存
        }
    }
  • 相关阅读:
    Div添加滚动条
    JAVA正则表达式 Pattern和Matcher类
    颜色代码对应表
    Java排序方法
    Windows切换窗口
    SVN错误信息汇总
    @RequestMapping 用法详解
    java——国际化详解
    Java NIO学习笔记九 NIO与IO对比
    ROS学习笔记十二:使用gazebo在ROS中仿真
  • 原文地址:https://www.cnblogs.com/sweat123/p/4689092.html
Copyright © 2011-2022 走看看