题意是将一段字符串分成k段;则
a1 a2 a3 a4 ... ak
ak+1 ak+2 ak+3 ak+4 ... a2k
...
所满足的a1=ak+1=a2
k+1... ,对于每一列,只需找出字母出现次数最多的,即这一列都选择这个字母;
用个map存一下;

#include<bits/stdc++.h>
using namespace std;
char ch[1000010];
int main()
{
    int n,k,ans=0;
    cin>>n>>k;
    for(int i=1;i<=n;i++) cin>>ch[i];
    unordered_map<char,int> mp;
    for(int i=1;i<=k;i++)
    {
        mp[ch[i]]++;
        for(int j=1;j<n/k;j++)
        {
            mp[ch[i+j*k]]++;
        }
        int h=0;
        for(char p='a';p<='z';p++) h=max(h,mp[p]),mp[p]=0;
        ans+=n/k-h;
    }
    cout<<ans<<endl;
    return 0;
}