专栏文章
周日上午-东塘404-罗
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mintx2sy
- 此快照首次捕获于
- 2025/12/02 08:17 3 个月前
- 此快照最后确认于
- 2025/12/02 08:17 3 个月前
T669129 求第 k 小的数
新知识
CPP//关闭同步流
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
//scanf(),printf();
//c++中的数组一般范内:3*10^7
思路
先定一个数组:a[5000010],再定两个变量:n,m,然后开一个同步流,输入n,m,再来个for循环:for(int i=1;i<=n;i++){cin>>a[i];}然后来个sort排序:sort(a+1,a+1+n);最后输出a[m+1];
代码
CPP#include<bits/stdc++.h>
using namespace std;
int a[5000010],n,m;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+1+n);
cout<<a[m+1];
return 0;
}
[GESP202409 四级] 区间排序
思路
先定一个整数变量:n,在定一个数组:a[110];输入n,for循环:
CPPfor(int i=1;i<=n;i++){
cin>>a[i];
}
int q,在输入q,最后输入一个for循环和while循环:
CPPwhile(q--){
int l,r;
cin>>l>>r;
sort(a+l,a+r+1);
}
for(int i=1;i<=n;i++){
cout<<a[i]<<' ';
}
代码
CPP#include<bits/stdc++.h>
using namespace std;
int n;
int a[110];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
int q;
cin>>q;
while(q--){
int l,r;
cin>>l>>r;
sort(a+l,a+r+1);
}
for(int i=1;i<=n;i++){
cout<<a[i]<<' ';
}
return 0;
}
B4289 [蓝桥杯青少年组省赛 2022] 字母组合
思路
先定一个char变量:a[105],再定一个整数变量n,在输入n,然后用for循环输入数组,排个序sort(a+1,a+1+n);最后来个for循环输出a数组。
代码
CPP#include<bits/stdc++.h>
using namespace std;
char a[105];
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+1+n);
for(int i=1;i<=n;i++){
cout<<a[i];
}
return 0;
}
P4414 [COCI 2006/2007 #2] ABC
思路
先定一个整数变量:a[10];在输入a[1],a[2],a[3],然后来个sort排序:sort(a+1,a+1+3);再定一个字符串s,然后len=s.size();最后来个for训环:
CPPfor(int i=0;i<=len-1;i++){
if(s[i]=='A'){
cout<<a[1]<<' ';
}
if(s[i]=='B'){
cout<<a[2]<<' ';
}
if(s[i]=='C'){
cout<<a[3]<<' ';
}
}
代码
CPP#include<bits/stdc++.h>
using namespace std;
int a[10];
int main(){
cin>>a[1]>>a[2]>>a[3];
sort(a+1,a+1+3);
string s;
cin>>s;
int len=s.size();
for(int i=0;i<=len-1;i++){
if(s[i]=='A'){
cout<<a[1]<<' ';
}
if(s[i]=='B'){
cout<<a[2]<<' ';
}
if(s[i]=='C'){
cout<<a[3]<<' ';
}
}
return 0;
}
U522962 单词排序
思路
先定两个变量string s,int n,再定一个数组a[110],再来一个while(cin):while(cin>>s){n++;a[n]=s;}在排一个序:sort(a+1,a+1+n);来一个for循环:
CPPfor(int i=1;i<=n;i++){
if(a[i]!=a[i-1]){
cout<<a[i]<<endl;
}
}
代码
CPP #include<bits/stdc++.h>
using namespace std;
string a[110],s;
int n;
int main(){
while(cin>>s){
n++;
a[n]=s;
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++){
if(a[i]!=a[i-1]){
cout<<a[i]<<endl;
}
}
return 0;
}
P2676 [USACO07DEC] Bookshelf B
思路
先定一个数组:h[20005],再来一个bool函数:
CPPbool cmp(int a,int b){
return a>b;
}
再定两个变量:n,b,在输入n,b,然后来个for循环来输入h数组:for(int i=1;i<=n;i++){cin>>h[i];}然后排个序:sort(h+1,h+n+1,cmp);然后定两个变量:ans=0,sum=0;再来一个for循环:
CPPfor(int i=1;i<=n;i++){
sum+=h[i];
ans++;
if(sum>=b){
break;
}
}
最后输出ans;
代码
CPP#include<bits/stdc++.h>
using namespace std;
int h[20005];
bool cmp(int a,int b){
return a>b;
}
int main(){
int n,b;
cin>>n>>b;
for(int i=1;i<=n;i++){
cin>>h[i];
}
sort(h+1,h+n+1,cmp);
int ans=0,sum=0;
for(int i=1;i<=n;i++){
sum+=h[i];
ans++;
if(sum>=b){
break;
}
}
cout<<ans;
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...