zoukankan      html  css  js  c++  java
  • uva 1401

    递推式:d[i]=sum(d[i+len[x]])这道题的数据真狗血,改了一点就过了。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<vector>
     4 using namespace std;
     5 const int maxnode=4000*100+10;
     6 const int mod=20071027;
     7 const int maxn=300000 + 10;
     8 const int maxw=4000 + 10;
     9 char ss[maxn];
    10 char s[110];
    11 int d[maxn];
    12 int len[maxw];
    13 int ch[maxnode][26];
    14 int val[maxnode];
    15 int sz;
    16 void insert(char *s,int v)//v需要为正数
    17 {
    18     int u=0,len=strlen(s);
    19     for(int i=0;i<len;i++)
    20     {
    21         int c=s[i]-'a';
    22         if(!ch[u][c])
    23         {
    24             memset(ch[sz],0,sizeof(ch[sz]));
    25             ch[u][c]=sz++;
    26         }
    27         u=ch[u][c];
    28     }
    29     val[u]=v;
    30 }
    31 void find(char *s,int len,vector<int>& p)
    32 {
    33     int u=0;
    34     for(int i=0;i<len;i++)
    35     {
    36         if(s[i]=='') break;
    37         int c=s[i]-'a';
    38         if(!ch[u][c])
    39         break;
    40         u=ch[u][c];
    41         if(val[u])
    42         p.push_back(val[u]);
    43     }
    44 }
    45 int main()
    46 {
    47     int CASE=1;
    48     while(scanf("%s",ss)!=EOF)
    49     {
    50         memset(val,0,sizeof(val));
    51         memset(ch[0],0,sizeof(ch[0]));
    52         memset(d,0,sizeof(d));
    53         sz=1;
    54         int n;
    55         scanf("%d",&n);
    56         for(int i=1;i<=n;i++)
    57         {
    58             scanf("%s",s);
    59             len[i]=strlen(s);
    60             insert(s,i);
    61         }
    62         int L=strlen(ss);
    63         d[L]=1;
    64         for(int i=L-1;i>=0;i--)
    65         {
    66            vector<int> p;
    67            find(ss+i,L-i,p);
    68            for(int j=0;j<p.size();j++)
    69             d[i]=(d[i]+d[i+len[p[j]]])%mod;
    70         }
    71         printf("Case %d: %d
    ",CASE++,d[0]);
    72     }
    73     return 0;
    74 }
  • 相关阅读:
    Pthon魔术方法(Magic Methods)-可视化
    Pthon魔术方法(Magic Methods)-实例化
    Java(Java SE7) 体系结构图
    利用环境变量打造自己的工具
    lua table排序报错与解决
    .gho文件检查
    文件服务器HFS
    在Unity中对Lua进行调试
    Lua不显示小数点0的部分
    Lua保留指定小数位数
  • 原文地址:https://www.cnblogs.com/sooflow/p/3283462.html
Copyright © 2011-2022 走看看