题意:n长的数组,只有1,2,分成n/k段,要求每一段完全相同。
题解:把数组分成 n / k 段,看每一段的第 i ( i 从 0 ~ k )个数字是 1 多还是 2 多,如果 1 多就加上 2的次数,反之,就加 1 的次数。
#include<bits/stdc++.h>
#include<cstring>
using namespace std;
int ss[105];
int num;
int main()
{
int n,k;
scanf("%d%d",&n,&k);
for(int i = 1 ;i <= n ; i++)
scanf("%d",&ss[i]);
int ct = 0;
for(int i = 1 ; i <= k ;i++)
{
int sum = 0;
for(int j = i ; j <= n ;j+=k)
{
if(ss[j] == 1) sum++;
}
ct +=min(sum,n/k-sum);
}
printf("%d\n",ct);
return 0;
}