A. A+B练习
简单输入输出练习。
输出答案用空行分开,但是最后一行的换行符不能省略,否则会出现迷之PE。
AC代码:
|
|
B. 出现次数最多的数
题意简述:
给定n个正整数(si),找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
本题数据范围较小,1 ≤ n ≤ 1000 ,1 ≤ si ≤ 10000。
解法也有很多,以下给出一个较简单的办法:
用一个10000大小的数组表示各个数的出现次数,对于每次输入,将对应的数的出现次数+1,同时记录出现过的数,用以之后的比较。
AC代码:
|
|
C. ISBN号码
题意简述:
有ISBN号码如0-670-82162-4
,最后一位为验证码,由前几位计算得到,写程序判断ISBN号码是否正确,若不正确则输出正确的号码,否则输出Right.
AC代码:
|
|
D. 排序
题意简述:
输入一串数字字符,将其中的5当做分隔符,剩下的数排序输出。
注意以下几组数据:
505123123205077555
0 77 12312320
00005051231232050775
0 0 77 12312320
50512312320555507750005
0 0 77 12312320
505123123205077
0 77 12312320
051231232055077
0 77 12312320
5550
0
1155663535006555
3 6 11 663
10000000055051120
0 1120 100000000
00060054
4 600
都是细节!
AC代码:
|
|
E. 数值统计
大水题,略。
F. Z字形扫描
这题没有人通过,比较遗憾。
题意补充:多组测试数据,以EOF结尾。输出结果不用去掉行尾的空格。
这题一开始写的代码相当矬,下面给出的相对比较优雅的代码来自网络,有少量修改。
其实就是一道强行模拟可过的题,仔细一点还是都能过的。
AC代码:
|
|
G. 数字三角形
动态规划入门题。
这题还可以用如下的方法考虑:
从底端往上端推,把左下和右下两个数中比较大的那个加给上面的数。层层推进,最后得到的最上端的数就是所求的最大值。
AC代码:
|
|
H. 马遍历棋盘
题意简述:
给出一个n*m的国际象棋棋盘,问能否用马遍历这个棋盘,并且每个位置只能经过一次。如果能,输出字典序最小的结果;如果不能,输出impossible。
简单DFS,对于马的八个方向,如果能走则标记,回溯的时候取消标记,直到找到结果。
马八个方向的顺序是要根据自己建立的坐标设计好的,否则不能按照题意中“字典序最小”的要求输出。
AC代码:
|
|
建议多去找点搜索的题目做。以后的比赛还会有DFS和BFS的题出现。
I. 3n+1问题
其实一般最后一题是水题。
|
|
小结
第一次班赛整体较简单,主要为C++上机考试做准备。
本次比赛共14人参加,10人交题。
AC总计20次。
各题通过情况:
A | B | C | D | E | F | G | H | I | |
---|---|---|---|---|---|---|---|---|---|
AC | 7 | 1 | 1 | 1 | 8 | 0 | 1 | 0 | 1 |
Submit | 20 | 23 | 18 | 11 | 13 | 0 | 1 | 0 | 2 |
主要问题:
- 代码风格问题
- 没有正确的缩进格式
- 没有适当加空格
- 输入输出问题
- 对于多组输入输出的数据,没有加换行符
- 逻辑不清晰
- 审题不仔细
以上所有问题,都是练习不够造成的。