zoukankan      html  css  js  c++  java
  • HDU 1251 统计难题

    字典树又一基本题

    代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    using namespace std;
    #define N 1027
    
    struct node
    {
        int count;
        node *next[30];
    }*root;
    
    char ss[13];
    
    node *create()
    {
        node *p;
        p = (node *)malloc(sizeof(node));
        p->count = 1;
        for(int i=0;i<26;i++)
            p->next[i] = NULL;
        return p;
    }
    
    void release(node *p)
    {
        for(int i=0;i<26;i++)
        {
            if(p->next[i] != NULL)
                release(p->next[i]);
        }
        free(p);
    }
    
    void insert(char *ss)
    {
        int i=0,k;
        node *p = root;
        while(ss[i])
        {
            k = ss[i++] - 'a';
            if(p->next[k] == NULL)
                p->next[k] = create();
            else
                p->next[k]->count++;
            p = p->next[k];
        }
    }
    
    int search(char *ss)
    {
        int i=0,k,j;
        node *p = root;
        int now = 0;
        while(ss[i])
        {
            k = ss[i++] - 'a';
            p = p->next[k];
            if(p == NULL)
                return 0;
            else
                now = p->count;
        }
        return now;
    }
    
    int main()
    {
        int i=0,j,k;
        root = create();
        while(gets(ss)&&ss[0]!='')
        {
            insert(ss);
        }
        i=0;
        while(scanf("%s",ss)!=EOF)
        {
            printf("%d
    ",search(ss));
        }
        release(root);
        return 0;
    }
    View Code
  • 相关阅读:
    《Spring2之站立会议1》
    《Spring1之第十次站立会议》
    《Spring1之第九次站立会议》
    《Spring1之第八次站立会议》
    《Spring1之第七次站立会议》
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/whatbeg/p/3537553.html
Copyright © 2011-2022 走看看