scu 1952

来源:互联网 发布:不错吧源码 编辑:程序博客网 时间:2024/05/22 03:45

题目链接:点击打开链接

看的别人的代码,是求个行的中位数。

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;}