2025年12月gesp3级题解

​选择判断没有题目。

编程第一题

本题考察考生对字符串、三大结构的掌握情况。

我们遍历这一个字符串,如果发现它是大写英文字母s[i]>='A'&&s[i]<='Z',则记录大写英文字母的数量的变量自增(+1),否则,如果发现它是数字s[i]>='0'&&s[i]<='9',则记录数字的数量的变量自增(+1),最后判断,如果长度 < 8 <8 <8 或者大写英文字母数量为 0 0 0 或者数字数量为 0 0 0 则输出 N,否则输出 Y,注意换行。

代码:

cpp 复制代码
#include<iostream>
using namespace std;
int n,cntA,cnt1;
string s;
int main() {
	cin>>n;
	while(n--){
		cin>>s;
		cntA=cnt1=0;
		for(int i=0;i<s.size();i++){
			if(s[i]>='A'&&s[i]<='Z') cntA++;
			else if(s[i]>='0'&&s[i]<='9') cnt1++;
		}
		if(cntA==0||cnt1==0||s.size()<8) cout<<"N"<<endl;
		else cout<<"Y"<<endl;
	}
	return 0;
}

编程第二题

考虑用 m i n n i minn_i minni 表示种类编号为 i i i 的文具的最小价格。

输入时只需要用minn[i] = min(minn[i],val),注意minn的初始值应设为比 1000 1000 1000 大的数(文具价格最多 1000 1000 1000 元)。

代码:

cpp 复制代码
#include<iostream>
using namespace std;
int n,m,x,val,minn[100005],ans;
int main() {
	for(int i=1;i<=100001;i++) minn[i]=1005;
	cin>>m>>n;
	for(int i=1;i<=n;i++){
		cin>>x>>val;
		minn[x]=min(minn[x],val);
	}
	for(int i=1;i<=m;i++) ans+=minn[i];
	cout<<ans;
	return 0;
}

完结撒花,点个赞呗。

相关推荐
2301_80736719几秒前
C++中的解释器模式变体
开发语言·c++·算法
愣头不青15 分钟前
617.合并二叉树
java·算法
MIUMIUKK1 小时前
双指针三大例题
算法
灵感__idea1 小时前
Hello 算法:复杂问题的应对策略
前端·javascript·算法
2301_819414302 小时前
C++与区块链智能合约
开发语言·c++·算法
Zaly.2 小时前
【Python刷题】LeetCode 1727 重新排列后的最大子矩阵
算法·leetcode·矩阵
不想看见4042 小时前
Valid Parentheses栈和队列--力扣101算法题解笔记
开发语言·数据结构·c++
老约家的可汗2 小时前
C/C++内存管理探秘:从内存分布到new/delete的底层原理
c语言·c++
做怪小疯子2 小时前
蚂蚁暑期 319 笔试
算法·职场和发展
天赐学c语言2 小时前
Linux - 应用层自定义协议与序列/反序列化
linux·服务器·网络·c++