《信息学奥赛一本通 编程启蒙C++版》3411-3415(5题)

3411:练70.3 删除单词后缀

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

练 70.3 删除单词后缀

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

20 删除单词后缀

20 删除单词后缀_哔哩哔哩_bilibili

教四年级小朋友学编程-【字符串函数28】删除单词后缀

教四年级小朋友学编程-【字符串函数28】删除单词后缀_哔哩哔哩_bilibili

《信息学奥赛一本通》题解_1141_删除单词后缀

《信息学奥赛一本通》题解_1141_删除单词后缀_哔哩哔哩_bilibili



#include <bits/stdc++.h>
using namespace std;
int main()
{
	string s;int len;
	cin>>s;
	len=s.size();
	if(s[len-2]=='e'&&s[len-1]=='r') len-=2;
	if(s[len-2]=='l'&&s[len-1]=='y') len-=2;
	if(s[len-3]=='i'&&s[len-2]=='n'&&s[len-1]=='g') len-=3;
	for(int i=0;i<len;i++)cout<<s[i];
	return 0;
}



3412:【例71.1】 字典序排序

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

[例 71.1]字典序排序

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



#include <bits/stdc++.h>
using namespace std;
pair<int,char> a[1005];
int cnt,ans;
bool cmp(pair<int,char> a,pair<int,char> b){
	return a.second<b.second;
} 
int main()
{
	while(cin>>a[++cnt].second){
		a[cnt].first=cnt;
	}
	stable_sort(a+1,a+cnt,cmp);
	for(int i=1;i<cnt;i++){
		ans+=abs(a[i].first-i);
	}
	cout<<ans;
	return 0;
}



3413:【例71.2】 01串排序

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

[例 71.2] 01 串排序

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



#include <bits/stdc++.h>
using namespace std;
bool cmp(string x,string y){
	int lx=x.size(),ly=y.size();
	int ox=0,oy=0;
	for(int i=0;i<lx;i++) ox+=x[i]-48;
	for(int i=0;i<ly;i++) oy+=y[i]-48;
	return lx<ly||
		lx==ly&&ox<oy||
		lx==ly&&ox==oy&&x<y;
}
int main()
{
	int n;string a[105];
	cin>>n;
	for(int i=0;i<n;i++) cin>>a[i];
	sort(a,a+n,cmp);
	for(int i=0;i<n;i++) cout<<a[i]<<endl;	
	return 0;
}



3414:【例71.3】 拼最大整数

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

[例71.3]拼最大整数

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



#include<bits/stdc++.h>
using namespace std;
int n;
string a[1000];
bool cmp(string &a,string &b) {
    return (a+b > b+a);
}
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	sort(a,a+n,cmp);
	for(int i=0;i<n;i++){
		cout<<a[i];
	}
}



3415:练71.1成绩排序

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

练 71.1成绩排序

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



#include <bits/stdc++.h>
using namespace std;
struct stu{
	string m;
	int s;
}a[25];
bool cmp(stu s1,stu s2){
	if(s1.s>s2.s)return 1;
	else
		if(s1.s==s2.s&&s1.m<s2.m)return 1;
		else return 0;
}
int main()
{
	int n;
	cin>>n;
	for(int i=0;i<n;i++)cin>>a[i].m>>a[i].s;
	sort(&a[0],&a[n],cmp);
	for(int i=0;i<n;i++)cout<<a[i].m<<" "<<a[i].s<<endl;
	return 0;
}



《信息学奥赛一本通 编程启蒙 C++版》 3411-3420(10题)

《信息学奥赛一本通 编程启蒙 C++版》 3411-3420(10题)_练70.3 删除单词后缀-CSDN博客




 




小学生C++入门书籍、算法入门书籍,NOI数学书籍等

小学生C++入门书籍、算法入门书籍,NOI数学书籍等-CSDN博客

小学生C++入门书籍、程序员的数学入门书籍、算法启蒙书籍等

小学生C++入门书籍、程序员的数学入门书籍、算法启蒙书籍等_c++入门pdf百度云-CSDN博客

《小学生C++趣味编程》Scratch、C++

《小学生C++趣味编程》Scratch、C++_第29课 布纳特老师出的难题-CSDN博客

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dllglvzhenfeng

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

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

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

打赏作者

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

抵扣说明:

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

余额充值