ZCMU-1653-这样真的好么(*^*)

1653: 这样真的好么(*^*)

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 196   Solved: 98
[ Submit][ Status][ Web Board]

Description

在某人参加的某一场比赛中,一共有k位选手参赛,他们的编号是1到k。主办方准备了n个气球,主办方同样把这n个气球随机的编号为1到k中的一个数(保证n可以整除k),然后比赛胜利的规则就是,主办方随机的选择一个气球,如果这个气球的编号是X,那么X选手就胜出...,这样真的好么(*^*),主办方为了体现自己的,暗室不欺 不同流俗 不欺暗室 不忘沟壑 赤子之心 德厚流光 高情远致 高山景行 功德无量 厚德载物 怀瑾握瑜 蕙心纨质 见危授命 鞠躬尽瘁,死而后已 精金良玉 敬老慈幼 良金美玉 明德惟馨 年高德劭 前人栽树,后人乘凉 青天白日 山高水长 拾金不昧 玉洁松贞 沅茝沣兰 云中白鹤 志士仁人等高尚的品德.决定重新编号,使得每个人获胜的概率是一样哒~~,所以这位高尚的主办方想知道最少得修改几次哦!!!

Input

   多组测试,请处理到文件末尾,输入的格式是,第一行是n,k(k<n<=100)接下来n个数,表示气球的编号。

Output

一个数,表示需要修改的次数。

Sample Input

4 2
2 1 2 2
6 2
2 2 1 1 1 2

Sample Output

1
0

HINT

 样例解释:1 由 2 1 2 2 --->1 1 2 2


【解析】

这道题水题..我们知道了气球编号是1-k,每一个气球的编号数量应该是相同的。n/k是必须每个编号都达到数量。如果该编号气球的数量少于平均值,那我们就加上那个差值,至于比平均值大的我们就可以不用管了。因为其实该编号气球少于平均值的我们加上差值之后就相当于比平均值大的减去了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
int main()
{
  int n,k,i,m,p,sum;
  int a[110];
  while(~scanf("%d%d",&n,&k))
  {
      memset(a,0,sizeof(a));
      sum=0;
      for(i=0;i<n;i++)
      {
          scanf("%d",&m);//那个编号气球数量+1
          a[m]++;
      }
      p=n/k;
      for(i=1;i<=k;i++)
      {
          if(a[i]<p)
          {
              sum+=p-a[i];
          }
      }
      printf("%d\n",sum);
  }
   return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值