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

    一个很经典的字典树题目 

    先建树 再拆单词进行判断是否都在树内

    因为爆内存错了很久

    如果一个四十万的数组  用mamset的话会直接爆几十万的内存  

    所以要:用多少 初始化多少才对!( 修改了两条初始化语句 见代码)  不过这题只有一组数据  所以不初始化关系不大

    #include<bits/stdc++.h>
    using namespace std;
    
    int  trie[400100][26]={0};
    int  sum[400100];
    char ans[50005][30];//这里数组开小了导致一直wa
    int root=0;
    int pos=1;
    void insert1(char *s)
    {
        int root=0;
        for(int i=0;i<strlen(s);i++)
        {   int ch=s[i]-'a';
            if( trie[ root ][ch]==0  )
              {
    
                 memset(trie[pos],0,sizeof(trie[pos]));//用多少初始化多少
                 trie[root][ch]=pos++;
    
              }
            root=trie[root][ch];
        }
        sum[root]=1;
    }
    
    bool  find1(char *s)
    {
        int root=0;
        for(int i=0;i<strlen(s);i++)
        {
            int ch=s[i]-'a';
            if( trie[root][ch]==0 )return false;
            root=trie[root][ch];
    
        }
        return sum[root];
    
    }
    
    int main()
    {
    
    
       int c=0;
       pos=1;
       memset(sum,0,sizeof(sum));
        memset(trie[0],0,sizeof(trie[0]));//用多少初始化多少
        while(gets(ans[c++]))
        {
         insert1( ans[c-1] );
        }
    
        for(int i=0;i<=c-1;i++)
        {
    
            for(int k=1;k<strlen( ans[i] ) ;k++)
            {
                char a[30],b[30];
                strncpy(a,ans[i],k   );a[k]='';
                strncpy(b,ans[i]+k, strlen(ans[i]) );
                b[strlen(ans[i]) -k]='';
                if(find1(b)&&find1(a))
                {
                    puts(ans[i]);break;
    
                }
            }
    
        }
    
    return 0;
    }
  • 相关阅读:
    Object C学习笔记19-枚举
    Object C学习笔记18-SEL,@ selector,Class,@class
    Object C学习笔记17-动态判断和选择器
    Object C学习笔记16-委托(delegate)
    CopyOnWriteArrayList源码解析
    企业项目开发--切分配置文件
    常用Java集合类总结
    HashSet源码解析
    网络工具使用情况分析
    邮件营销的准则
  • 原文地址:https://www.cnblogs.com/bxd123/p/10345688.html
Copyright © 2011-2022 走看看