33、《信息学奥赛一本通 编程启蒙 C++版》 3321-3330(10题)

1、3321:练54.4 整数ABC

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

#include<bits/stdc++.h>
using namespace std;
int main() {
 
    int a[10];
    string s;
 
    for (int i = 1; i <= 3; i++)cin >> a[i];
    cin >> s;
 
    sort(a + 1, a + 1 + s.length());
    for (int i = 0; i <= 2; i++) {
 
        cout << a[s[i] - 64] << " ";
    }
 
    return 0;
}



2、3322:练54.5 损失最小

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

#include<bits/stdc++.h>
using namespace std;
int a[1000000+10];
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
	//cin>>n>>m;
    
    for(int i=1;i<=n;i++)
    {
    	cin>>a[i];
	}
	
	sort(a+1,a+n+1);
	
	for(int i=1;i<=m;i++)
	{
		printf("%d\n",a[i]);
		//cout<<a[i]<<endl;
	}
		
    return 0;
}



3、3323:【例55.1】 整数奇偶排序

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

[例55.1] 整数奇偶排序

1181:整数奇偶排序

信息学奥赛一本通(C++版)在线评测系统

一本通视频题解——1181:整数奇偶排序

1181:整数奇偶排序_哔哩哔哩_bilibili

《信息学奥赛一本通》题解_1181_整数奇偶排序_哔哩哔哩_bilibili

整数奇偶排序(信息学奥赛一本通-T1181)_哔哩哔哩_bilibili

一本通视频题解——1181:整数奇偶排序_哔哩哔哩_bilibili

#include <iostream> 
#include <algorithm>
 
using namespace std;
 
bool cmp(int a, int b){
    return a > b;
}
 
int  main(){
    int a[12], b[12];
    int n = 10;
    int i = 0, j = 0;
    
    while(n--){
        int x;
        cin >> x;
        if(x % 2 == 1)a[i++] = x;//存奇数
        else b[j++] = x;//存偶数
    }
    
    sort(a, a + i, cmp);//逆排序
    sort(b, b + j);//排序
    if(i != 0)
    for(int  k = 0; k < i; k++){
        cout << a[k] << " ";
    }
    if(j != 0)
    for(int  k = 0; k < j; k++){
        cout << b[k] << " ";
    }
    
    return 0;
}



4、3324:【例55.2】 约翰书架

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

#include<bits/stdc++.h>
using namespace std;
int main(){
	int b[20001]={},n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>b[i];
	}
	sort(b+1,b+n+1);
	int s=0,s1=0;
	for(int i=n;i>=1;i--){
		s+=b[i];
		s1++;
		if(s>=m){
			break;
		}
	}
    cout<<s1;
	return 0;
}



5、3325:【例55.3】 绝对值排序

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

/*
3325:【例55.3】 绝对值排序
http://bas.ssoier.cn:8086/problem_show.php?pid=3325
https://blog.csdn.net/wudaomumu/article/details/129800992
*/
#include <stdio.h>
#include <math.h>
int main(){
    int n,i,j,a[100];
    while(scanf("%d",&n) != EOF){
    for(i = 0;i < n;i++){
        scanf("%d",&a[i]);  
    }
    for(i = 0;i < n;i++){
        int f = 0;
        for(j = 0;j < n - i - 1;j++){
            if(abs(a[j]) < abs(a[j + 1])){
            int t = a[j];
            a[j] = a[j + 1];
            a[j + 1] = t;
            f = 1;
            }
        }
        if(f == 0) break;
    }
    for(i = 0;i < n;i++){
        printf("%d ",a[i]);
    }
}
    return 0;
}



6、3326:练55.1 合影效果

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

练55.1 合影效果

1182:合影效果

信息学奥赛一本通(C++版)在线评测系统

一本通视频题解——1182:合影效果

一本通视频题解——1182:合影效果_哔哩哔哩_bilibili

1182:合影效果_哔哩哔哩_bilibili

合影效果(信息学奥赛一本通-T1182)_哔哩哔哩_bilibili

《信息学奥赛一本通》题解_1182_合影效果_哔哩哔哩_bilibili

#include<bits/stdc++.h>
using namespace std;
int main()
{
	double a,q[40],o[40];
	int q1=0,o1=0,n;
	string s;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>s>>a;
		if(s=="female")
		{
			o[o1]=a;
			o1++;
		}
		if(s=="male")
		{
			q[q1]=a;
			q1++;
		}
	}
	sort(o,o+o1);//排序
	sort(q,q+q1);
	for(int i=0;i<q1;i++)//保留2位小数输出
	{
		printf("%.2lf ",q[i]);
	}
	for(int i=o1-1;i>=0;i--)
	{
		printf("%.2lf ",o[i]);
	}
	return 0;
}



7、3327:练55.2 跳绳比赛

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

第64课 跳绳比赛 《小学生C++趣味编程》

第64课 跳绳比赛 《小学生C++趣味编程》_c语言跳绳比赛-CSDN博客

/*
风之巅小学举行1分钟跳绳比赛,5人一小组,试编一程序,

输入小组内同学的跳绳次数,按从次数由多到少的顺序输出。

选择排序

冒泡排序

桶排序 
*/
#include<iostream>
using namespace std;
int main()
{
	int a[6],i,j,t; 
	
	int k;
	
	int maxa; 
	
	//cout<<"输入5个整数:"<<endl; 
	for(i=1;i<=5;i++)
		cin>>a[i]; 
	
	for(i=1;i<=4;i++)
	{
		maxa=a[i];
		k=i;
		for(j=i+1;j<=5;j++)
		  if( a[j]>maxa )
		  {                               
		       maxa=a[j];
			   k=j;  
		  }
		  
		t=a[i];
		a[i]=a[k];	
		a[k]=t; 
	}
	  
	
	for(i=1;i<=5;i++)
		cout<<a[i]<<" ";
	
	return  0; 
}
/*
作业:

2044:【例5.12】回文字串
http://ybt.ssoier.cn:8088/problem_show.php?pid=2044

2045:【例5.13】蛇形填数
http://ybt.ssoier.cn:8088/problem_show.php?pid=2045

2046:【例5.15】替换字母
http://ybt.ssoier.cn:8088/problem_show.php?pid=2046 
*/



8、3328:练55.3 收益最大

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

#include <bits/stdc++.h>
using namespace std;
int c,n,a[1005],z,kun,m;
int main(){
	cin>>c>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	sort(a+1,a+1+n,greater<int>());
	for(int i=1;i<=n;i++){
		kun=min(i,c);
		if(z<=kun*a[i]){
			z=kun*a[i];
			m=a[i];
		} 
	}
	cout<<m<<" "<<z;
	return 0;
}



9、3329:练55.4 沙堡

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

/*
3329:练55.4 沙堡
http://bas.ssoier.cn:8086/problem_show.php?pid=3329
https://blog.csdn.net/SSB232/article/details/107992428
https://www.jianshu.com/p/3b9abce3fd28
*/
#include<bits/stdc++.h>
using namespace std;
int m[25001],b[25001];
int main()
{
	int n,x,y,i,ans;
	cin>>n>>x>>y;
	for(i=1;i<=n;i++)
	{
		scanf("%d%d",&m[i],&b[i]);
	}
	sort(m+1,m+n+1);
	sort(b+1,b+n+1);
	ans=0;
	for(i=1;i<=n;i++)
	{
		if(m[i]<b[i])
		{
			ans+=(b[i]-m[i])*x;
		}
		else
		{
			ans+=(m[i]-b[i])*y;
		}
	} 
	cout<<ans<<endl;
    return 0;
}



10、3330:【例56.1】 和为给定数

信息学奥赛一本通-编程启蒙(C++版)在线评测系统

信息学奥赛一本通-编程启蒙3330:【例56.1】 和为给定数

信息学奥赛一本通-编程启蒙3330:【例56.1】 和为给定数_给出若干个整数,询问其中是否有一对数的和等于给定的数。-CSDN博客






 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dllglvzhenfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值