附上题目链接:Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) 1457B
题目大意:刷墙。有t组测试数据,每组测试数据先给出房子总数n和每一次操作的房子数k。然后是n个数表示房子最初的颜色。求把他们刷成同一种颜色最少操作数。
这道题用了一个坏坏的方法:暴力遍历。因为一共就100种颜色,所以遍历每一种操作的次数,迭代取最小操作数cnt。因为代码可以看懂就不多解释了
AC代码如下:
#include<iostream>
using namespace std;
int main()
{
int t;
cin >> t;
int k,n;
int a[100005];
while(t--)
{
cin >> n >> k;
for( int i = 1; i <= n ; i ++)
{
cin >> a[i];
}
int cnt = 0,sum = 100000;
for( int i = 1 ; i <= 100 ; i++)
{
for ( int j =1 ; j <= n ; j++)
{
if(a[j]!=i)
{
cnt++;
j+=k-1;
continue;
// cout << " cnt=" << cnt << endl;
}
}
if(cnt < sum) sum = cnt;
cnt = 0;
}
cout << sum << endl;
}
}
AC截图: