zoukankan      html  css  js  c++  java
  • 模板

    hdu1251 统计难题

    可以作为模板

    #include<stdio.h>
    #define MAX 26
    typedef struct TrieNode
    {
        int nCount;
        struct TrieNode *next[MAX];
    }TrieNode;
    
    TrieNode Memory[1000000];
    int allocp=0;
    
    void InitTrieRoot(TrieNode **pRoot)
    {
        *pRoot=NULL;
    }
    
    TrieNode *CreateTrieNode()
    {
        int i;
        TrieNode *p;
    
        p=&Memory[allocp++];
        p->nCount=1;
        for(i=1;i<MAX;i++)
        {
            p->next[i]=NULL;
        }
        return p;
    }
    
    void InsertTrie(TrieNode **pRoot,char *s)
    {
        int i,k;
        TrieNode *p;
    
        if(!(p=*pRoot))
          p=*pRoot=CreateTrieNode();
        i=0;
        while(s[i])
        {
            k=s[i++]-'a';
            if(p->next[k]) p->next[k]->nCount++;
            else p->next[k]=CreateTrieNode();
            p=p->next[k];
        }
    }
    int SearchTrie(TrieNode **pRoot,char *s)
    {
        TrieNode *p;
        //pRoot==&Root *pRoot==Root **pRoot==*Root
        int i,k;
        if(!(p=*pRoot))
          return 0;
        i=0;
        while(s[i])
        {
            k=s[i++]-'a';
            if(p->next[k]==NULL) return 0;
            p=p->next[k];
        }
        return p->nCount;
    }
    int main()
    {
        char str[11];
        TrieNode *Root=NULL;
        InitTrieRoot(&Root);
        int **a=&Root;
        
       while(gets(str))
       {
           if(!str[0]) break;
           InsertTrie(&Root,str);
       }
       while(gets(str))
       {
           printf("%d
    ",SearchTrie(&Root,str));
       }
        return 0;
    }
    View Code
  • 相关阅读:
    失落的情
    我有个想法------彩南书屋
    西藏旅游闲记(上)
    夜归
    宝石山再记
    学车的日子(一)
    BootStrapValidator表单验证插件的学习和使用
    shard_row_id_bits & pre_split_regions
    某某大肠_tikv_修改配置参数
    第十二周总结
  • 原文地址:https://www.cnblogs.com/zhgyki/p/9991805.html
Copyright © 2011-2022 走看看