CCF CSP 模拟试题及详细答案.docxVIP

  • 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)

1亿VIP精品文档

相关文档