欢迎光临散文网 会员登陆 & 注册

2022年CSP-S提高级初赛(第一轮)真题讲解

2023-08-19 14:52 作者:书海拾硫酸钡  | 我要投稿

根据视频整理出的部分知识点

欢迎纠错~

【如果可以的话,蒟蒻请求置顶】

1.Linix: ls(lst)查看当前目录的文件和子目录

cd(change...) 改变目录

cp(copy) 复制


2.time命令: user + sys 不一定= real,用户用秒表记录的是real时间


3.栈的基本操作,比较简单懒得写


4.快速排序:选择一个基本数x,把<x的放在左区间 >x的放右区间,继续分治 最坏复杂度n^2


归并排序:分(拆分子序列) + 治(排序),复杂度log2n

5.基数排序:按照数位一位一位排序(0-9的桶,先按个位放到桶里,然后再取出放回数组,接下来按照10位排序,以此类推...)



6.%X:16进制显示


7.完全二叉树:除了最后一层,其他层都满,最后一层左边是满的,右边可能不满(注意最后一层是满的也算是完全二叉树)


8.强连通图:有向图中,每个点之间都有路径能互相到达


9.欧拉路径:一条经过每个边一次的路径恰好一次的路径;

欧拉回路:一个回路是欧拉路径;

具有欧拉回路的图为欧拉图 简称E图

判断条件(见下图懒得写了)

具体做法:可以靠枚举得出规律,当然可以靠枚举直接推。

特例:n = 2 时答案是不成立的

(所以在用取值法排除答案时最好不要代入2)

10.有歧义,根据答案时8个人组一个队伍,但是也可以理解成8个人4个队。(****CCF)

知识点:乘法原理,比较简单

11.同样是乘法原理(2022数学题的难度比以前简直是天差地别)

12.哈希表:利用哈希函数确定地址遇到冲突可用线性探查(其实还有别的方法),即一直往后找找到空地址为止.

具体做法:

13.水题,没有太难的知识点,会算时间复杂度即可

14.水题,没有太难的知识点

15.递归函数的运算,两种方法:


16.程序思路:查找t在s的哪个位置(类似于find()),但有优化:如图s = day, i = 0时,如果无法匹配,就看i = 3是什么,如果是“y"那么从i = 1查找,是”a"从i = 2查找...以此类推(具体见下图)

技巧:程序想不出来干嘛用时可以先看题目

17.大致思路:基数排序(类CSP-J 2019)(虽然这两货差别其实有点大...)

具体思路:k是进制,先确定有几位,然后基数排序


以十进制为例:

稳定的算法:归并排序,冒泡排序,插入排序,基数排序


桶排序:把数字分到桶里,再单独排序,最后得到有序数列


计数排序:统计每个数出现的次数,然后再排序(可以看成大小是1的桶)

18.考察负数除法求余:一般来说有两种情况,取决于编译器

对于Dev-c++除数往绝对值小的那边取值:

如-22 / 5 = -4余-2, 22/-5 = -4余2

但在本题中其实哪种情况算出来的结果是一样的

注:(x / y) *y + x % y == x只要y!=0一定满足


19.难死我了根本不会

首先先模拟单序列二分(如图)

然后双序列二分:




2022年CSP-S提高级初赛(第一轮)真题讲解的评论 (共 条)

分享到微博请遵守国家法律