CF 1555 D. Say No to Palindromes(构造)

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main()
{
    
    
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int n,m;
    cin>>n>>m;
    string t,s="abc";
    cin>>t;
    vector<vector<int> >pre(6,vector<int>(n+1));
    int cnt=0;
    do
    {
    
    
        for(int i=1;i<=n;i++)
        {
    
    
            pre[cnt][i] = pre[cnt][i-1] + (s[(i-1)%3]==t[i-1]?0:1);//1:0
        }
        cnt++;
    }while(next_permutation(s.begin(),s.end()));
    while(m--)
    {
    
    
        int l,r;
        cin>>l>>r;
        int ans=1e9;
        for(int i=0;i<6;i++)ans=min(ans,pre[i][r]-pre[i][l-1]);
        cout<<ans<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Ambrumf/article/details/120846804