zoukankan      html  css  js  c++  java
  • Shortest Prefixes (最短前缀且不重复)

    题目链接:http://poj.org/problem?id=2001

    思路:

    从根结点开始遍历,如果找到一个点它只被访问了一次,那么到它一定就是最短的而且不会重复的前缀。

    具体代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <string>
     4 #include <iostream>
     5 #include <stdlib.h>
     6 #include <algorithm>
     7 
     8 using namespace std;
     9 const int MAX_NODE = 300001;
    10 const int CHARSET = 26;
    11 
    12 int trie[MAX_NODE][CHARSET]={0};
    13 //int color[MAX_NODE]={0};
    14 int vis[MAX_NODE]={0};
    15 int k = 1;
    16 char s[MAX_NODE][1000];
    17 
    18 void insert(char w[])
    19 {
    20     int len = strlen(w);
    21     int p = 0;  // 根结点
    22     for (int i=0;i<len;i++)
    23     {
    24         int c = w[i] - 'a';
    25         if (!trie[p][c])
    26         {
    27             trie[p][c] = k;
    28             k++;
    29         }
    30         p = trie[p][c];
    31         vis[p]++;
    32     }
    33     //color[p] = 1;
    34 }
    35 
    36 
    37 void search(char s[])
    38 {
    39     int len = strlen(s);
    40     int p = 0;
    41     for (int i=0;i<len;i++)
    42     {
    43         if (vis[p] == 1)
    44             break;
    45         int c = s[i]-'a';
    46         printf("%c",s[i]);
    47         p = trie[p][c];
    48 
    49     }
    50 }
    51 
    52 
    53 int main()
    54 {
    55 #ifndef ONLINE_JUDGE
    56     freopen("../in.txt", "r", stdin);
    57 #endif
    58     int t = 0;
    59     while (scanf("%s",s[t])!=EOF)
    60     {
    61         insert(s[t]);
    62        // cout << s[t] << endl;
    63         t++;
    64     }
    65     //cout << t << endl;
    66     for (int i=0;i<t;i++)
    67     {
    68         printf("%s ",s[i]);
    69         search(s[i]);
    70         printf("
    ");
    71     }
    72     return 0;
    73 }

     

  • 相关阅读:
    hutool 解析 Excel
    上传文件
    Cannot construct instance of `com.**` (although at least one Creator exists)
    Java8之Optional
    java8之Stream
    java8之Lambda
    springboot+mybatis事务管理
    queryWrapper in like
    Java 组装 Tree
    JWT
  • 原文地址:https://www.cnblogs.com/-Ackerman/p/11209998.html
Copyright © 2011-2022 走看看