其实,这题就是红题
2024-06-10 19:58:45
发布于:上海
10阅读
0回复
0点赞
题目说了 是一个 的排列。那么要让 最小,自然想到 应当是一个 的排列。
那么思路就很明确了,对于每个输入的前 个数,如果发现不在 的范围内,那么就说明 排列中的一个数不在 范围内,把这个数交换进前 个数即可。这里不用真的交换,只需记录次数即可。于是,代码就出现了。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
using namespace std;
int main(){
int T;
cin>>T;
while(T--){
int n,k;
cin >> n >> k;
int cnt=0;
for(int i=1; i<=n; i++){
int t;
cin >> t;
if(i<=k&&t>k) cnt++;
}
cout<<cnt<<endl;
}
return 0;
}
我没有用错 和吧
这里空空如也
有帮助,赞一个