zoukankan      html  css  js  c++  java
  • Uva1401 Remember the Word

    用trie树匹配字串,树上套个dp即可

     1 /*By SilverN*/
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cmath>
     5 #include<cstring>
     6 #include<algorithm>
     7 #define LL long long
     8 using namespace std;
     9 const int mxn=400010;
    10 const int mod=20071027;
    11 struct trie{
    12     int a[mxn][26];
    13     int end[mxn];
    14     int cnt;
    15     void insert(char s[]){
    16         int len=strlen(s);
    17         int now=1;
    18         for(int i=0;i<len;++i){
    19             if(!a[now][s[i]-'a'])a[now][s[i]-'a']=++cnt;
    20             now=a[now][s[i]-'a'];
    21         }
    22         end[now]++;
    23     }
    24 };
    25 trie t;
    26 char s[mxn];
    27 char c[mxn];
    28 int n;
    29 int f[mxn];
    30 void dp(int cas){
    31     memset(f,0,sizeof f);
    32     int len=strlen(s+1);
    33     int i,j;
    34     f[len+1]=1;
    35     for(i=len;i;--i){
    36         int now=1;
    37         for(j=i;j<=len;++j){
    38             now=t.a[now][s[j]-'a'];
    39             if(!now)break;
    40             if(t.end[now])
    41                 f[i]=(f[i]+f[j+1])%mod;
    42         }
    43 //        printf("f[%d]==%d
    ",i,f[i]);
    44     }
    45     printf("Case %d: %d
    ",cas,f[1]);
    46     return;
    47 }
    48 int main(){
    49     int cas=0;
    50     while(scanf("%s",s+1)!=EOF){
    51         memset(t.a,0,sizeof t.a);
    52         memset(t.end,0,sizeof t.end);
    53         t.cnt=1;
    54         int i,j;
    55         scanf("%d",&n);
    56         for(i=1;i<=n;++i){
    57             scanf("%s",c);
    58             t.insert(c);
    59         }
    60         dp(++cas);
    61     }
    62     return 0;
    63 }
  • 相关阅读:
    钉钉outgoing机器人小项目开发
    js根据cookie判断,一天之内只弹出一次弹窗
    js倒计时功能
    jquery的$().each,$.each的区别
    VS代码提示自动高亮
    winform当前屏幕大小
    动态增删改控件
    datagridveiw样式
    sql 语句 提取中文的首字母
    按键监听及重写
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/6013923.html
Copyright © 2011-2022 走看看