zoukankan      html  css  js  c++  java
  • POJ 2001 Shortest Prefix

    字典树基本题。

    代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #include <cstdlib>
    
    using namespace std;
    #define N 1027
    
    struct node
    {
        int count;
        node *next[30];
    }*root;
    
    char ss[N][30];
    
    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];
        }
    }
    
    void search(char *ss)
    {
        int i = 0,k,j,flag = 0;
        node *p = root;
        while(ss[i] && !flag)
        {
            k = ss[i++] - 'a';
            p = p->next[k];
            if(p->count == 1)
            {
                flag = 1;
                printf("%s ",ss);
                for(j=0;j<i;j++)
                    printf("%c",ss[j]);
                printf("
    ");
            }
        }
        if(!flag)
            printf("%s %s
    ",ss,ss);
    }
    
    int main()
    {
        int i=0,j,k;
        root = create();
        while(scanf("%s",ss[i])!=EOF)
        {
            insert(ss[i]);
            i++;
        }
        for(j=0;j<i;j++)
            search(ss[j]);
        release(root);
        return 0;
    }
    View Code
  • 相关阅读:
    tyvj1463 智商问题
    P1070 道路游戏
    P1862 输油管道问题
    P1875 佳佳的魔法药水
    P1498 南蛮图腾
    P1489 猫狗大战
    P1395 会议(求树的重心)
    P2285 [HNOI2004]打鼹鼠
    P3819 松江1843路(洛谷月赛)
    P3818 小A和uim之大逃离 II(洛谷月赛)
  • 原文地址:https://www.cnblogs.com/whatbeg/p/3537551.html
Copyright © 2011-2022 走看看