小蓝是一位有名的漆匠,他的朋友小桥有一个漆房,里面有一条长长的走廊,走廊两旁有许多相邻的房子,每间房子最初被涂上了一种颜色。小桥来找小蓝,想让他也把整个走廊都涂成同一个颜色。小蓝告诉小桥,他每天只能涂一段长度为k的区间。对于每个区间,他可以选择将其中的房子重新涂上任何一种颜色,或者保持原来的颜色不变。小桥想知道小蓝至少要涂几天, 请帮助小桥解决这个问题。 输入格式 第一行包含一个整数t(t<=100),表示测试用例的数量 每个测试用例的第一行包含两个整数n和k(1<=k<=n<=10^4),第二行包括n个整数,每一个均<=60,分别表示每个房子最初的颜色。 保证所有测试用例中n的总和不超过10^4。
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int t;
cin>>t;
int n,k,i;
for(i=0;i<t;i++)
{
cin>>n>>k;
vector<int> arr(n);
unordered_set<int> s;
for(int j=0;j<n;j++)
{
cin>>arr[j];
s.insert(arr[j]);
}
int ans=INT_MAX;
for(auto &x:s)
{
int cnt=0;
for(int j=0;j<n;j++)
{
if(arr[j]==x)
continue;
cnt+=1;
j+=k-1;
}
ans=min(ans,cnt);
}
cout<<ans<<endl;
}
return 0;
}
这个代码vector还要unordered我写在for循环外面提交不行,写在里面就好了,这是为什么???