最后一组莫名R

P2264 情书

#include<bits/stdc++.h> #define N 10500 using namespace std; queue<int>q; int n,tt; char s1[323],s2[323],red[1010],zy[1010]; struct ss { int val,pos; } seat[100010]; struct red { int sum,c[N][27],val[N], fail[N],L[N]; void clear() { sum=0; memset(c,0,sizeof 0); memset(val,0,sizeof val); memset(fail,0,sizeof fail); } void insert(char *s) { int len=strlen(s),now=0; for(int i=0;i<len;i++) { int a=s[i]-'a'; if(!c[now][a]) c[now][a]=++sum; now=c[now][a]; } val[now]++;L[now]=len; } void Make_Fail() { for(int i=0;i<=26;i++) if(c[0][i]) { fail[c[0][i]]=0; q.push(c[0][i]); } while(!q.empty()) { int pos=q.front();q.pop(); for(int i=0;i<=26;i++) if(c[pos][i]) {fail[c[pos][i]]=c[fail[pos]][i];q.push(c[pos][i]);} else c[pos][i]=c[fail[pos]][i]; } } int query(char *s) { int len=strlen(s),now=0,ans=0; for(int i=0;i<len;i++) { now=c[now][s[i]-'a']; for(int t=now;t&&val[t]!=-1;t=fail[t]) { ans+=val[t]; seat[++tt].pos=t;seat[tt].val=val[t]; val[t]=-1; } } for(int i=1;i<=tt;i++) val[seat[i].pos]=seat[i].val;tt=0; return ans; } } AC; int main() { freopen("323.in","r",stdin); // freopen("323.out","w",stdout); scanf("%d",&n);int ans=0,len=0; for(int i=1;i<=n;i++) { scanf("%s",s1); for(int j=0;j<strlen(s1);j++) if(s1[j]<='Z') s1[j]+=32; s1[strlen(s1)]='z'+1; // printf("%s\n",s1); AC.insert(s1); memset(s1,0,sizeof s1); } AC.Make_Fail(); while(scanf("%s",s1)!=EOF) { int l=strlen(s1); for(int i=0;i<l;i++) { if(s1[i]<='Z'&&s1[i]!='.'&&s1[i]!=',') s1[i]+=32; red[len++]=s1[i]; } red[len++]='z'+1; memset(s1,0,sizeof s1); } // printf("%s\n",red);return 0; int t=0; while(t<len-1) { int l=0;memset(zy,0,sizeof zy); for(int i=t;;i++) if(red[i]==',') zy[l++]='z'+1; else if(red[i]!='.') zy[l++]=red[i]; else {zy[l++]='z'+1;break ;} ans+=AC.query(zy); t+=l; // printf("%s\n",zy); // printf("%d\n",t); } printf("%d\n",ans); return 0; }
by xnzy @ 2018-06-16 20:45:03


> ```cpp > ```cpp > ``` > ``` > 谢谢
by LCuter @ 2018-06-16 20:48:19


@[Ryan_wxn_](/space/show?uid=83547) 啊?
by xnzy @ 2018-06-19 19:57:07


@[xnzy](/space/show?uid=75750) 麻烦代码用三个`括起来
by LCuter @ 2018-06-20 19:28:06


|