/ Vijos /

记录详情

Compile Error

/in/foo.cc:1:30: warning: extra tokens at end of #include directive
 #include<bits/stdc++.h>using namespace std;typedef long long ll;const int mod=1e9+7;const int MAXN=4e6+5;string S[MAXN],T[MAXN],FS[MAXN];int h[MAXN<<1];char buf[MAXN];map<int,int> H,vst;int F[MAXN];int G(int L,int R){ int res=(h[R]-1ll*h[L-1]*F[R-L+1])%mod; return res>=0?res:res+mod;}int main(){ F[0]=1; for(int i=1;i<MAXN;i++)F[i]=131ll*F[i-1]%mod; int nS,nT,N,M; scanf("%d%d%d%d",&nS,&nT,&N,&M); for(int i=1;i<=nS;i++) {  scanf("%s",buf);  S[i]=buf; } for(int i=1;i<=nT;i++) {  scanf("%s",buf);  T[i]=buf; } if(N<=M)swap(N,M),swap(nS,nT),swap(S,T); for(int i=1;i<=nT;i++) {  int tmp=0;  for(int k=0;k<M;k++)tmp=(131ll*tmp+(T[i][k]-'a'+1))%mod;  H[tmp]++; } int L=N+M>>1; ll Ans=0; for(int i=1;i<=nS;i++) {  vst.clear();  FS[i]=S[i].substr(0,L);  FS[i]=' '+FS[i]+FS[i];  for(int k=1;k<=(L<<1);k++)h[k]=(131ll*h[k-1]+(FS[i][k]-'a'+1))%mod;  int tmp=0;  for(int k=L;k<N;k++)tmp=(131ll*tmp+(S[i][k]-'a'+1))%mod;  for(int k=1;k<=L;k++)  {   if(G(k,k+(N-L)-1)==tmp)   {    int X=G(k+(N-L),k+L-1);    if(vst.count(X))continue;    else    {     vst[X]=1;     Ans+=H[X];    }   }  } } cout<<Ans<<'\n'; return 0;}
                              ^~~~~~~~~
/in/foo.cc:1:1107: fatal error: bits/stdc++.h>usin: No such file or directory
 #include<bits/stdc++.h>using namespace std;typedef long long ll;const int mod=1e9+7;const int MAXN=4e6+5;string S[MAXN],T[MAXN],FS[MAXN];int h[MAXN<<1];char buf[MAXN];map<int,int> H,vst;int F[MAXN];int G(int L,int R){ int res=(h[R]-1ll*h[L-1]*F[R-L+1])%mod; return res>=0?res:res+mod;}int main(){ F[0]=1; for(int i=1;i<MAXN;i++)F[i]=131ll*F[i-1]%mod; int nS,nT,N,M; scanf("%d%d%d%d",&nS,&nT,&N,&M); for(int i=1;i<=nS;i++) {  scanf("%s",buf);  S[i]=buf; } for(int i=1;i<=nT;i++) {  scanf("%s",buf);  T[i]=buf; } if(N<=M)swap(N,M),swap(nS,nT),swap(S,T); for(int i=1;i<=nT;i++) {  int tmp=0;  for(int k=0;k<M;k++)tmp=(131ll*tmp+(T[i][k]-'a'+1))%mod;  H[tmp]++; } int L=N+M>>1; ll Ans=0; for(int i=1;i<=nS;i++) {  vst.clear();  FS[i]=S[i].substr(0,L);  FS[i]=' '+FS[i]+FS[i];  for(int k=1;k<=(L<<1);k++)h[k]=(131ll*h[k-1]+(FS[i][k]-'a'+1))%mod;  int tmp=0;  for(int k=L;k<N;k++)tmp=(131ll*tmp+(S[i][k]-'a'+1))%mod;  for(int k=1;k<=L;k++)  {   if(G(k,k+(N-L)-1)==tmp)   {    int X=G(k+(N-L),k+L-1);    if(vst.count(X))continue;    else    {     vst[X]=1;     Ans+=H[X];    }   }  } } cout<<Ans<<'\n'; return 0;}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ^
compilation terminated.

信息

递交者
类型
递交
题目
P1960 双旋转字符串
语言
C++
递交时间
2018-02-26 16:28:08
评测时间
2018-02-26 16:28:08
评测机
分数
0
总耗时
0ms
峰值内存
0 Bytes