結果
問題 | No.430 文字列検索 |
ユーザー |
|
提出日時 | 2024-10-17 14:29:26 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,620 bytes |
コンパイル時間 | 2,371 ms |
コンパイル使用メモリ | 245,712 KB |
実行使用メモリ | 10,496 KB |
最終ジャッジ日時 | 2024-11-10 01:13:37 |
合計ジャッジ時間 | 5,693 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 4 |
other | AC * 1 TLE * 1 -- * 12 |
ソースコード
#include <bits/stdc++.h>#include <cmath>//#include <ranges>using ll=long long;using lu=unsigned long long;#define rep(i,a,b) for(int i=a;i<b;i++)#define chmin(x,b) x=min(x,b)using namespace std;#define fi first#define se secondusing P=pair<int,int>;using PD=pair<double,double>;using PL=pair<ll,ll>;using PH=pair<int,char>;using PS=pair<string,ll>;int mod1=998244353;int mod2=1000000007;const ll INF = 5000000000000000000;const int big = 2147483647;ll N=1;struct st{ll x,y,z;st(ll x=0,ll y=0,ll z=0):x(x),y(y),z(z){}bool operator>(const st &a) const {if (x != a.x) return x > a.x;if (y != a.y) return y > a.y;return z > a.z;}};mt19937_64 rng(1644);ll mod=(1ll<<61)-1;int main(){//13:14ll n=0,q,y=0,i=0,z=0,x=0,d=0,k=0,nk,sum=0;ll ans=INF,sum2=0,rs=-INF,cs=0,l=0,h=0,r=0;ll a=0,b=0,c=0,j=0,m=0,K=0;ll M=0,R,w,L;string s;cin>>s;N=s.size();cin>>M;ll cnt=0;rep(i,0,M){string t;cin>>t;n=t.size();ll has=0;rep(j,0,t.size()){(has*=26);(has+=(t[j]-'A')+1);}mod=1;while(n>0){n--;mod*=26;}//cout<<has<<endl;//cout<<(ahash[5]^ahash[3])<<endl;ll hash=0;rep(j,0,N){(hash*=26)%=mod;hash+=(s[j]-'A')+1;if(j<t.size()-1)continue;if(hash==has){cnt++;}//printf("%lld %lld\n",hash,has);}//cout<<cnt<<endl;}cout<<cnt<<endl;}