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;
}

完结撒花,点个赞呗。

相关推荐
云泽80818 分钟前
C++ 可调用对象通关指南:深度解析 Lambda 表达式、function 包装器与 bind 绑定器
开发语言·c++·算法
wlsh151 小时前
Go 迭代器
算法
Tri_Function1 小时前
简单图论大学习
c++
语戚1 小时前
力扣 3161. 块放置查询:线段树解法(Java 实现)
java·算法·leetcode·面试·线段树·力扣·
lqqjuly1 小时前
C++ 完整知识体系—从基础语法到现代 C++23 的系统性总结
c++·c++23
CS创新实验室2 小时前
从顺序表到动态数组:数据结构的永恒基石与现代语言的优雅封装
数据结构·算法
王老师青少年编程2 小时前
信奥赛C++提高组csp-s之FHQ Treap
c++·csp·平衡树·信奥赛·csp-s·提高组·fhq treap
Black蜡笔小新2 小时前
自动化AI算法训练服务器DLTM训推一体化平台助力农业生产管理实现安全智能化
人工智能·算法·自动化
8Qi83 小时前
LeetCode 23. 合并 K 个升序链表 —— 小顶堆(PriorityQueue)
数据结构·算法·leetcode·链表·
QiLinkOS3 小时前
《打破“用爱发电”:一种基于 Gitee 与时间戳的开源权益分配机制探索》
c语言·数据结构·c++·科技·算法·gitee·开源