设为首页 加入收藏

TOP

poj 3630 Phone List trie
2015-07-20 17:19:13 来源: 作者: 【 】 浏览:2
Tags:poj 3630 Phone List trie

题意:判断是否有某字符串是别的字符串的前缀。是则输出NO,不然输出YES。

思路:把板子写成结构体版的。。详见代码:

/*********************************************************
  file name: poj3630.cpp
  author : kereo
  create time:  2015年02月09日 星期一 22时22分45秒
*********************************************************/
#include
  
   
#include
   
     #include
    
      #include
     
       #include
      
        #include
        #include
        
          #include
         
           #include
          
            #include
           
             #include
            
              using namespace std; typedef long long ll; const int sigma_size=26; const int N=100+50; const int MAXN=100000+50; const int inf=0x3fffffff; const double eps=1e-8; const int mod=1000000000+7; #define L(x) (x<<1) #define R(x) (x<<1|1) #define PII pair
             
               #define mk(x,y) make_pair((x),(y)) int n,sz,flag; char str[N]; struct node{ int id,val; node *ch[sigma_size]; }nod[MAXN],*root,*null,nil; struct Trie{ void init(){ sz=0; nil.id=0; null=&nil; newnode(root); } void newnode(node *&x){ x=&nod[sz]; x->val=0; x->id=sz++; for(int i=0;i
              
               ch[i]=null; } void insert(char *str){ int len=strlen(str); node *p=root; for(int i=0;i
               
                ch[k] == null) newnode(p->ch[k]); if(p->val) flag=1; p=p->ch[k]; } p->val=1; for(int i=0;i
                
                 ch[i]!=null){ flag=1; break; } } }trie; int main(){ int T; scanf("%d",&T); while(T--){ scanf("%d",&n); trie.init(); flag=0; for(int i=0;i
                 
                  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇hdu 5170 5171 下一篇spring之jdbcTemplate实例

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何理解c语言指针和 (2025-12-27 01:19:11)
·为什么C标准库没有链 (2025-12-27 01:19:08)
·玩转C语言和数据结构 (2025-12-27 01:19:05)
·MySQL 基础入门视频 (2025-12-26 23:20:22)
·小白入门:MySQL超详 (2025-12-26 23:20:19)