CSP 初赛复习

鹏北海,凤朝阳。又携书剑路茫茫。

本文起笔于 2026.9.18,以后可能会每年更一次 ?

发现第二天就初赛了,感觉问题不大,但有些知识点还理解的不是很透彻,遂有此文。

根据笔者近几年初赛的经验,大概有以下见解。

J 组难度不在算法上,主要是有一些计算机理论和杂七杂八的东西。

S 组差不多只要算法学过一遍就可以随便过了。

所以本文与常见算法基本没有关系,主要注重于一些初赛中常见的理论和冷门算法。

计算机理论

计算机构成

计算机由 运算器、存储器、输入设备、输出设备 构成,即“冯·诺依曼结构”。

  • CPU :中央处理器,由 运算器 + 控制器 + 寄存器 组成。

  • 内存 :即内存储器,电脑内部存储,有 RAM(可读可写,断电数据丢失)、ROM(只读,断电数据不丢失)和 Cache(高速缓存,断电数据丢失) 两种存储器。

  • 外存 :即外存储器,断电数据保留,主要包括硬盘,光盘,U盘等。

  • 输入设备 :传入数据、命令,包括键盘,鼠标,麦克风,摄像头等。

  • 输出设备 :呈现出结果的设备,包括显示器,音响,打印机等。

CPU 访问速度 :寄存器 > 高速缓存 > 内存 > 外存。

image

空间换算

进制转换如下表。

image

注意上表中的这些单位都有一个 \(i\) 是 \(binary\) 的意思,是二进制下的数据单位。

如果没有 \(i\) ,则是十进制下的数据单位,进制转换的进率是 1000 而不是 1024。

如果要比较两种单位,先统一化成 bit。

重要贡献人员

  • 艾伦·图灵(英) :计算机科学之父,AI先驱,首次提出了计算机科学理论,图灵奖被称为“计算机界的诺贝尔奖”。

  • 冯·诺依曼(美):现代计算机之父,首次提出了存储程序控制原理,“冯·诺依曼结构”。

  • 克劳德·香农(美):通信之父,创建了信息论。

计算机语言

  • 机器语言(机器码):计算机能识别的语言,二进制串。

  • 汇编语言:用符号代替二进制数,计算机无法直接识别,人类编写难度较大。

  • 高级语言:如今的编程语言(C++,JAVA等),要用编译器编译(有两种编译方式)。

    • 编译方式(C++):先编译整个程序,再运行。

    • 解释方式(Python / PHP):一行一行编译,速度较慢。

机器值

  • 原码:二进制数,最高位表示正负,0 为 正,1 为 负

  • 反码:对于原码,除符号位全部取反(负数)

  • 补码:反码 + 1(负数)

正数的原码,反码,补码相同。

对于位运算中含有负数的情况,都可以理解为,把所有数都转化成补码异或,异或以后得到补码,再转成原码。

图片/视频存储以及屏幕分辨率

图片存储所占空间计算公式:水平方向像素数 \(\times\) 竖直方向像素数 \(\times\) 色彩位率 = 图片所占空间(\(bit\))。

视频存储所占空间计算公式:水平方向像素数 \(\times\) 竖直方向像素数 \(\times\) 色彩位率 \(\times\) 视频时长 \(\times\) 视频帧数 = 视频所占空间(\(bit\))。

注意 视频时长 和 帧数 的单位统一。

杂项

排序算法

冒泡,归并,插入,计数,基数 排序 稳定。

选择,快速,希尔,堆,桶 排序 不稳定。

哈夫曼树

image

image

主定理

image

posted @ 2026-09-18 20:01  lmx_rp++  阅读(8)  评论(0)    收藏  举报