zoukankan      html  css  js  c++  java
  • HDU1251——trie模板——统计难题

    http://acm.hdu.edu.cn/showproblem.php?pid=1251

    /*
    模板题,c表示最长后缀串的编号,如果后面加入的与前面的字符一直相同,那么不会产生新的
    推荐
    http://www.cnblogs.com/yym2013/p/3780621.html
    http://blog.csdn.net/v_july_v/article/details/6897097
    */
    /************************************************
    * Author        :Powatr
    * Created Time  :2015-8-14 16:26:57
    * File Name     :hdu1251.cpp
     ************************************************/
    
    #include <cstdio>
    #include <algorithm>
    #include <iostream>
    #include <sstream>
    #include <cstring>
    #include <cmath>
    #include <string>
    #include <vector>
    #include <queue>
    #include <deque>
    #include <stack>
    #include <list>
    #include <map>
    #include <set>
    #include <bitset>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    
    #define lson l, mid, rt << 1
    #define rson mid + 1, r, rt << 1 | 1
    typedef long long ll;
    const int MAXN = 1e6 + 10;
    const int INF = 0x3f3f3f3f;
    const int MOD = 1e9 + 7;
    
    int trie[MAXN][26];
    int num[MAXN];
    char s[11];
    int len;
    int pos;
    
    void insert(char s[])
    {
        int c = 0;
        len = strlen(s);
        for(int i = 0; i < len; i++){
           int m = s[i] - 'a';
          if(!trie[c][m])
              trie[c][m] = pos++;
          c = trie[c][m];
          num[c]++;
        }
    }
    
    int find(char s[])
    {
        int c = 0;
        len = strlen(s);
        for(int i = 0; i < len; i++){
            int m = s[i] - 'a';
            if(!trie[c][m])
                return 0;
            c = trie[c][m];
        }
        return num[c];
    }
    
    
    
    
    int main()
    {
        pos = 1;
        while(gets(s)){
            if(s[0] == '') break;
            insert(s);
        }
        while(gets(s))
            printf("%d
    ", find(s));
        return 0;
    }
    

      

  • 相关阅读:
    关于动画的各种实现方法【转】
    关于弹出框的理念【转】
    jquery点击目标DIV以外关闭效果
    唯美诗句
    mouseover和this的巧用
    基于html5 canvas 的强大图表插件【Chart.js】
    关于百度地图API (持续跟新)
    JS的异步回调函数
    MMU内存管理单元(看书笔记)
    系统移植详细步骤
  • 原文地址:https://www.cnblogs.com/zero-begin/p/4730468.html
Copyright © 2011-2022 走看看