站外题,求助
  • 板块题目总版
  • 楼主Mr_Pang
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/12 18:45
  • 上次更新2024/1/12 21:35:33
查看原帖
站外题,求助
1125683
Mr_Pang楼主2024/1/12 18:45

小蓝是一位有名的漆匠,他的朋友小桥有一个漆房,里面有一条长长的走廊,走廊两旁有许多相邻的房子,每间房子最初被涂上了一种颜色。小桥来找小蓝,想让他也把整个走廊都涂成同一个颜色。小蓝告诉小桥,他每天只能涂一段长度为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循环外面提交不行,写在里面就好了,这是为什么???

2024/1/12 18:45
加载中...