1 条题解

  • 0
    @ 2026-5-5 16:50:41
    #include<bits/stdc++.h>
    using namespace std;
    int const N=100010;
    int q;
    string s,t;
    bitset<N>a[28],ans;
    signed main(){
    	ios::sync_with_stdio(0);
    	cin>>s;
    	for(int i=0;i<s.size();i++)
    		a[s[i]-97][i]=1;
    	for(cin>>q;q--;){
    		int op,x,y;
    		if(cin>>op>>x,x--,op<2)
    			cin>>t,a[s[x]-97][x]=0,a[t[0]-97][x]=1,s[x]=t[0];
    		else{
    			cin>>y>>t,ans.set();
    			for(int i=0;i<t.size();i++)
    				ans&=a[t[i]-97]>>i;
    			cout<<max(0,(int)(ans>>x).count()-(int)(ans>>(y-t.size()+1)).count())<<"\n";
    		}
    	}
    }
    
    • 1

    信息

    ID
    6873
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者