个人网站模板制作教程,上海app定制,网站建设傲鸿,dw用设计视图做网站将devc设置支持编译就能用新的遍历方式
for(auto x : s)//遍历容器s#xff0c;变量为x /*
多循环的嵌套#xff1a;
计数是否需要重置为0;
是否因为ans定义成全局变量导致ans在比较多时候会出现错误*/
/*
1.对于一个标准色#xff0c;对目标数组遍历#xff0c;
如… 将devc设置支持编译就能用新的遍历方式
for(auto x : s)//遍历容器s变量为x /*
多循环的嵌套
计数是否需要重置为0;
是否因为ans定义成全局变量导致ans在比较多时候会出现错误*/
/*
1.对于一个标准色对目标数组遍历
如果和标准相同检查下一个
否则将当前元素在内的K个元素一起“涂成”标准色
表现为cnt。
2.标准色的获取用无序数组unorder_set进行存储,然后可以用auto进行遍历
(这里遍历的顺序是不知道的)
*/
#include bits/stdc.h
using namespace std;
//思想每次只是操作一个数
//确定涂房子的标准(哪个数)
int main() {int t; cin t;for (int i 0, n, k; i t; i) {cin n k;vectorint arr(n);unordered_setint s;for (int j 0; j n; j) {cin arr[j];s.insert(arr[j]); //一个集合防止重复记录}int ans INT_MAX;for (unordered_setint::iterator it s.begin(); it ! s.end(); it) {int cnt 0; // 计数器用于记录需要操作的次数// 遍历数组arrfor (int j 0; j n; j) {if (arr[j] *it) continue; // 如果当前元素与集合中的元素相同则跳过cnt; // 否则计数器加1j j k - 1; // 跳过接下来的k-1个元素}ans min(ans, cnt); // 更新答案为当前最小的操作次数}//两个循环的意思//对于集合中每一个元素都要进行判断cout ans endl;}return 0;
} 我的代码
还有一些问题左边能过右边过不了。
遍历也有问题? #includebits/stdc.h
using namespace std;int main()
{int t;cint;while(t--){int n,k;cinnk;vectorint arr(n);unordered_setint s;for(int i0;in;i){cinarr[i];s.insert(arr[i]);}int ansINT_MAX;//因为是标准色之间的比较所以ans定义在外面for(auto x : s){int cnt0;for(int j0;jn;j){if(arr[j]x) continue;cnt;jk-1;}ansmin(ans,cnt);}coutans\n;}return 0;
}