题目链接:点击打开链接
看的别人的代码,是求个行的中位数。
a z z这个如果是平均数的话是35,中位数是18
别人的博客:点击打开链接
#include <iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std;
const int maxn=1e5+10;
char ch;
vector<char> G[maxn];
int main()
{
int i,j,n,m,t,a,sum;
char s[maxn];
scanf("%d",&t);
while(t--)
{
sum=0;
for(i=0;i<maxn;i++)G[i].clear();
scanf("%d %d",&n,&m);
scanf("%s",s);
for(i=0;i<n*m;i++)
{
G[i%n].push_back(s[i]);
}
for(i=0;i<n;i++)
sort(G[i].begin(),G[i].end());
for(i=0;i<n*m;i++)
{
int len=G[i%n].size();
sum+=abs(s[i]-G[i%n][len/2]);
}
printf("%d\n",sum);
}
return 0;
}