专栏文章

周日上午-东塘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循环:
CPP
for(int i=1;i<=n;i++){
  cin>>a[i];
}
int q,在输入q,最后输入一个for循环和while循环:
CPP
while(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训环:
CPP
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]<<' ';
  }
} 

代码

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循环:
CPP
for(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函数:
CPP
bool 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循环:
CPP
for(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 条评论,欢迎与作者交流。

正在加载评论...