CC++ & Algorithm

CSP-J

86 个知识点

CCF CSP-J 入门级(初中组)

C++86 个知识点

计算机基础与编程环境

8 个知识点

计算机基本构成、操作系统、网络概念、NOI规则、IDE使用

C++语法基础

8 个知识点

标识符、数据类型、运算符、表达式、输入输出

控制结构

8 个知识点

顺序、分支(if/switch)、循环(for/while/do-while)、嵌套

数组与字符串

4 个知识点

一维数组、二维数组、字符数组、string类

函数与递归

5 个知识点

函数定义与调用、形参与实参、传值与传引用、递归函数

结构体与指针

5 个知识点

结构体、联合体、指针、引用

STL与线性结构

5 个知识点

vector、stack、queue、list、sort、链表、栈、队列

树结构

6 个知识点

树的定义、二叉树的遍历、完全二叉树、哈夫曼树、二叉搜索树

图基础

3 个知识点

图的定义、邻接矩阵、邻接表

枚举与模拟

3 个知识点

枚举法、模拟法

基础算法

5 个知识点

贪心、递推、递归、二分法、倍增法

算法策略

3 个知识点

前缀和、差分

排序算法

5 个知识点

冒泡排序、选择排序、插入排序、计数排序

搜索与图遍历

4 个知识点

深度优先搜索DFS、广度优先搜索BFS、Flood Fill

动态规划入门

4 个知识点

动态规划基本思路、一维DP、背包DP、区间DP

数学与数论基础

10 个知识点

进制转换、初等数论、排列组合、素数筛法

中等

进制转换——用不同的数字语言说话

学习二进制、八进制、十进制、十六进制之间的转换方法,并了解如何在C++中实现。

简单

整除、因数与质数——数字的“亲戚”关系

从整除的概念出发,认识因数(约数)和质数(素数),并用C++判断一个数是否为质数。

中等

最大公约数(GCD)与最小公倍数(LCM)——找到数字的共同“因数”

理解两个数的最大公约数和最小公倍数的含义,并用C++编写程序计算它们。

中等

模运算与取余——数轴上绕圈子的学问

理解模运算(取余)的含义和基本性质,并用C++中的 % 运算符解决问题。

中等

整数唯一分解定理——把数字拆成质因子的积木

学习任何一个大于1的整数都可以唯一地分解成质数的乘积,并用C++编写质因数分解程序。

中等

辗转相除法(欧几里得算法)——用减法求最大公约数的智慧

掌握欧几里得算法求最大公约数的原理和C++实现,它是数学史上最古老的算法之一。

困难

素数筛法——埃氏筛和线性筛,批量“揪出”质数

学习用筛法高效地生成一定范围内的所有质数,埃氏筛简单易懂,线性筛更快更优。

中等

加法原理与乘法原理——数数也有规律

理解计数的两个基本法则:加法原理(分类计数)和乘法原理(分步计数),并用C++简单计算。

困难

排列与组合——选顺序还是选“团”

学习排列(考虑顺序)和组合(不考虑顺序)的概念及计算公式,并用C++计算。

困难

杨辉三角——数字的“金字塔”

认识杨辉三角的构造与组合数的关系,并用C++编程输出前n行。