zoukankan      html  css  js  c++  java
  • Hat’s Words HDU

    题意:给出数个单词 输出单词 如果该单词 是由字典中的单词组成的

    思路:字典树 先把全部建树  然后对于每一个单词进行分割,分别拿两半到字典树里面去找

    小心RE!

     1 #include<bits/stdc++.h>
     2 #include<string>
     3 using namespace std;
     4 const int maxn=50005+5;
     5 struct Trie{
     6     int ch[maxn][28];
     7     int size;
     8     bool num[maxn];
     9     void init(){
    10         memset(ch,0,sizeof(ch));
    11         memset(num,0,sizeof(num));
    12         size=1;
    13     }
    14     void insert(char*s){
    15         int i=0,rc=0;
    16         for( ;s[i]!='';i++){
    17             int id=s[i]-'a';
    18             if(ch[rc][id]==0){
    19                 ch[rc][id]=size++;
    20             }
    21             rc=ch[rc][id];
    22         }
    23         num[rc]=1;
    24     }
    25     bool find(char*s){
    26         int i=0,rc=0;
    27         for(;s[i]!='';i++){
    28             int id=s[i]-'a';
    29             if(ch[rc][id]==0){
    30                 return 0;
    31             }
    32             rc=ch[rc][id];
    33         }
    34         return num[rc];
    35     }
    36 
    37 }trie;
    38 char temp[60000][1000];
    39 char s1[1000],s2[1000];
    40 int main(){
    41     int n=0;
    42     trie.init();
    43     while(scanf("%s",temp[n])==1){
    44         //cout<<1<<endl;
    45         n++;
    46         trie.insert(temp[n-1]);
    47     }
    48     for(int i=0;i<n;i++){
    49         int len=strlen(temp[i]);
    50         for(int j=1;j<len-1;j++){
    51             for(int k=0;k<j;k++){
    52                 s1[k]=temp[i][k];
    53             }
    54             s1[j]='';
    55           for(int k=j;k<len;k++)s2[k-j]=temp[i][k];
    56           s2[len-j]='';
    57             if(trie.find(s1)&&trie.find(s2)){
    58                 printf("%s
    ",temp[i]);
    59                 break;
    60             }
    61         }
    62     }
    63     return 0;
    64 }
  • 相关阅读:
    linux(6)查看进程ps命令
    Python 基础03 序列
    Python 基础02 基本数据类型
    Python基础01 Hello World!
    Linux vi/vim
    Laravel 的HTTP控制器
    Laravel 下的伪造跨站请求保护 CSRF#
    Linux 磁盘管理
    Linux 用户he用户组管理
    Linxu 用户和用户组管理1
  • 原文地址:https://www.cnblogs.com/ttttttttrx/p/10252602.html
Copyright © 2011-2022 走看看