K-Periodic Array CodeForces - 371A
K-Periodic Array CodeForces - 371A

题意: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;
}

相关文章: