对于每一个字串最后要让所有的对应位置相同就是下标对k取模相同的位置的字符都要相同,然后统计一下每一个对应位置出现最多的那个,更改其他的就行了
void solve(){
int n,k;
cin>>n>>k;
string s;cin>>s;
s='0'+s;
map<int,map<char,int>> f;
for(int i=1;i<=n;i++){
f[i%k][s[i]]++;
}
int ans=0;
for(int i=0;i<k;i++){
int mx=0;
for(auto [c,cnt]:f[i]){
mx=max(mx,cnt);
}
ans+=(n/k)-mx;
}
cout<<ans;
}

京公网安备 11010502036488号