统计某位置上出现次数最多的字母,将其他字母都变为该字母并记录更改次数。
#include <iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
using ll=long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n,k;
cin>>n>>k;
string s;
cin>>s;
int num=k;
int sizes=n/k;
ll total=0;
for(int i=0;i<num;i++){
vector<int>cnt(26,0);
for(int j=i;j<n;j+=k)cnt[s[j]-'a']++;
int max_cnt=*max_element(cnt.begin(),cnt.end());
total+=sizes-max_cnt;
}
cout<<total<<endl;
return 0;
}
// 64 位输出请用 printf("%lld")

京公网安备 11010502036488号