CSP-J 入门 知识点
面向 CSP-J 入门级考生,覆盖初赛与复赛基础知识
计算机基础与常识
10 个计算机基本构成
CPU、内存(RAM/ROM)、输入/输出设备的工作原理与相互关系
位、字节与字
bit / Byte / Word 的概念,存储单位换算(KB/MB/GB/TB),二进制存储原理
数制与进制转换
二进制、八进制、十进制、十六进制之间的互转方法与练习
操作系统基本概念
操作系统功能,Windows/Linux 常见操作,文件系统基础
计算机网络基础
网络基本概念、IP 地址、域名、HTTP 协议入门
信息安全基础
常见安全概念、计算机病毒、网络安全常识
计算机历史与应用
计算机发展简史、图灵机概念、NOI/IOI 等竞赛介绍
NOI 竞赛规则与历史
NOI 系列活动历史、CCF 组织、赛制规则、评分标准
编译与运行概念
编译型与解释型语言区别,源代码→可执行文件流程,调试基本概念
g++ 编译器使用
g++ 基本编译命令、常用编译选项(-O2/-std=c++14/-o),命令行操作
搜索
4 个基础数学
6 个基础算法
10 个模拟与枚举
按题意逐步实现的思路,暴力枚举优化技巧,处理复杂模拟题的方法论
排序算法
冒泡/选择/插入排序原理与手写,快速排序/归并排序框架,sort 函数与自定义比较器
递推
递推关系建模,状态转移方程设计,斐波那契/台阶/过河卒等经典问题
时间复杂度分析
O(1)/O(logn)/O(n)/O(nlogn)/O(n²)/O(2^n) 的识别与估算,主定理入门
贪心算法
贪心策略设计与证明,活动选择/区间调度/哈夫曼编码等经典模型
空间复杂度分析
常见数据结构的空间占用计算,内存限制下的策略
二分查找
整数二分(两种边界)、浮点二分、lower_bound/upper_bound 使用
前缀和与差分
一维/二维前缀和构建与查询,差分数组的区间修改与还原
双指针
对撞指针、快慢指针、滑动窗口,适用场景与模板总结
高精度运算
大整数加减乘除的数组实现,压位高精度
基础数据结构
6 个C++ 程序设计(J 级)
14 个变量与数据类型
int / long long / float / double / char / bool 的范围、精度与常见溢出陷阱
常量与变量赋值
const 定义常量,赋值语句,自增自减运算,类型转换(隐式/显式)
输入输出
cin/cout 与 scanf/printf 的使用与区别,格式化输出,输入优化
运算符与表达式
算术/关系/逻辑/赋值/条件运算符,运算优先级表,短路求值
条件语句
if / else if / else,switch-case,嵌套条件的代码风格与易错点
循环语句
for / while / do-while,break / continue,嵌套循环,循环变量作用域
一维数组
声明初始化、遍历、数组越界问题、常见应用(计数、标记、桶排序)
二维数组
矩阵存储、遍历顺序、矩阵转置、蛇形填数等经典模型
字符数组与字符串
char 数组与 string 类,字符串输入(getline),strlen/strcmp/strcpy,字符串处理技巧
函数定义与调用
函数声明/定义/调用,参数传递(值传递),返回值,局部/全局变量
递归函数
递归三要素(边界/递推/return),递归调用栈,经典递归模型(阶乘/斐波那契/汉诺塔)
结构体
struct 定义与使用,结构体数组,结构体排序,嵌套结构体
指针基础
指针概念、取地址与解引用、指针与数组关系、引用(&)
文件操作
freopen 重定向输入输出,文件读写基础