- 1
- 0
- 约7.51千字
- 约 10页
- 2026-05-18 发布于河北
- 举报
CCFCSP模拟试题及详细答案
试题说明
编程语言:默认使用C++(竞赛主流语言),代码可直接提交至CSP认证环境,无语法错误;所有题目均设置合理测试点梯度,贴合真题评分标准。
第一题:拼数(基础编程+贪心)
题干
给定n个非负整数,将它们拼接成一个尽可能大的数。例如,给定3个整数13、312、343,拼接后的最大数给定2个整数12、121,拼接后的最大数为12121(而非12112)。
要求:输入n个非负整数,输出拼接后的最大数(注意:如果所有数均为0,输出0即可,避免出现多个0)。
输入输出要求
输入:第一行一个整数n(1≤n≤100),第二行n个非负整数(每个数的位数不超过10位)。
输出:一行一个字符串,表示拼接后的最大数。
样例输入1
3
13312343
样例输出1样例输入2
2
12121
样例输出2
12121
样例输入3
4
0000
样例输出3
0
详细解析
核心思路:本题的关键是找到一个合理的排序规则,让任意两个数拼接后尽可能大。常规的数字大小排序无法满足需求(例如12和121,12112,但1212112112),因此需要自定义排序规则。
自定义排序规则:对于两个字符串a和b(将数字转为字符串处理,避免整数溢出),比较a+b和b+a的大小:
1.若a+bb+a,则a应排在b前面(例如
原创力文档

文档评论(0)