C31-9.14sort排序1
原题链接:38471.note12025-09-14 18:40:43
发布于:江苏
一、作业
1.第k小的数
#include<iostream>
using namespace std;
int b[30005], n, k;
int x;
int main() {
cin >> n >> k;
for (int i=1; i<=n; i++) {
cin >> x;
b[x]++;
}
int cnt = 0;
for (int i=1; i<=30000; i++) {
if (b[i]) {
cnt++;
if (cnt == k) {
cout << i << endl;
return 0;
}
}
}
cout << "NO RESULT";
return 0;
}
2.比赛记录
#include<iostream>
using namespace std;
int main() {
int t;
cin >> t;
while (t--){
string s;
int b[105] = {}, n; //b[i]表示每个问题出现的次数
cin >> n >> s;
for (int i=0; i<n; i++){
b[s[i]] ++ ;
}
int ans = 0;
for (char i='A'; i<='Z'; i++){
if (b[i] >= i-64) ans++;
}
cout << ans << endl;
}
return 0;
}
二、课堂代码
1. 项链1
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n,s[10000]={};
cin>>n;
int l,r;
cin>>l>>r;
for(int i=1;i<=n;++i){
cin>>s[i];
}
sort(s+l, s+r+1);
for(int i=1;i<=n;++i){
cout<<s[i]<<' ';
}
return 0;
}
2. 项链2
//项链2
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n,s[10000]={};
cin>>n;
int l,r,c;
cin>>l>>r>>c;
for(int i=1;i<=n;++i){
cin>>s[i];
}
sort(s+l, s+r+1, greater<int>()); //区间 [l,r]降序排列
sort(s+r+1,s+c+1); //区间 [r+1, c]升序排列
for(int i=1;i<=n;++i){
cout<<s[i]<<' ';
}
return 0;
}
3. 驯服字符
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n;
cin>>n;
char a[10005]= {};
for(int i=1; i<=n; i++) cin>>a[i];
sort(a+1,a+n+1,greater<char>());
for(int i=1; i<=n; i++) cout<<a[i]<<" ";
return 0;
}
这里空空如也
有帮助,赞一个