Logo 王老师的课堂笔记

C++ · 算法 · 数学思维

交互动画 · 知识点游戏 · 代码模板 · 轻松理解核心概念

算法动画

cin 数据传送带

模拟 cin 输入流的工作方式,理解数据如何传入变量

cin 输入 传送带 GESP1
算法动画

进阶分装模拟器

更复杂的分装场景,综合运用取模和取整

分装 余数 取模 进阶
算法动画

零食大作战:求剩余

通过零食分装模拟,直观理解余数和取模运算

余数 取模 算术
知识点游戏

数字捕捉手:奇偶与倍数

互动捕捉数字,学习奇偶判断与倍数关系

奇偶 倍数 整除
知识点游戏

时空穿梭机:闰年大挑战

穿越时空判断闰年,掌握复杂条件嵌套逻辑

闰年 判断 条件 嵌套
知识点游戏

输入输出符号保卫战

区分 << 和 >>,保卫输入输出符号不出错

cout cin 输入输出 << >> GESP1
C++ 模板

C++框架模板

竞赛最基础的模板:主函数框架,所有题目的起点

C++框架 main GESP1
C++ 模板

do-while循环模板

先执行后判断——至少执行一次的循环

do-while 循环 至少一次 GESP1
C++ 模板

for循环模板

已知循环次数时使用:累加、遍历、枚举

for循环 遍历 累加 枚举 GESP1
C++ 模板

while循环模板

未知循环次数时使用:条件驱动型循环

while循环 条件循环 GESP1
C++ 模板

关系运算模板

大于、小于、等于、不等于——比较两个值的关系

关系运算 比较 等于 GESP1
C++ 模板

分支语句模板

if-else、switch-case——让程序根据条件选择不同路径

if-else switch-case 分支 GESP1
C++ 模板

变量定义与使用模板

变量的声明、赋值、命名规则——程序存储数据的基本方式

变量 声明 赋值 命名 GESP1
C++ 模板

基础数据类型模板

int、long long、double、char、bool——选择正确的类型存储数据

数据类型 int double char bool long long GESP1
C++ 模板

求余模板

取余运算的原理与常见应用:取个位、判断整除、周期问题

求余 取余 模运算 整除 周期 GESP1
C++ 模板

算术运算模板

加减乘除、整除、取余——C++ 中数学运算的基本规则

算术运算 整除 取余 GESP1
C++ 模板

输入输出模板

cin/cout 与 scanf/printf:竞赛中常用的输入输出方式

cin cout scanf printf 输入输出 GESP1
C++ 模板

逻辑运算模板

与&&、或||、非!——组合多个条件判断

逻辑运算 短路 GESP1
C++ 模板

多层分支模板

if-else 嵌套与 else-if 阶梯——处理多条件多层次的判断

多层分支 嵌套if else-if GESP2
C++ 模板

多层循环模板

嵌套循环的原理与经典题型:乘法表、图案打印、枚举

多层循环 嵌套循环 图案 枚举 GESP2
C++ 模板

常用数学函数模板

cmath 库常用函数:绝对值、幂、开方、四舍五入

数学函数 cmath abs sqrt pow GESP2
C++ 模板

数据类型转换模板

隐式转换与强制转换——理解 C++ 类型提升规则

类型转换 隐式转换 强制转换 GESP2
C++ 模板

一维数组模板

数组的声明、初始化、遍历——存储同类型数据的有序集合

一维数组 声明 初始化 遍历 GESP3
C++ 模板

位运算模板

与&、或|、异或^、取反~、左移<<、右移>>——用位操作提速

位运算 异或 移位 GESP3
C++ 模板

字符串模板

string 的创建、拼接、查找、截取——C++ 字符串操作大全

string 字符串 拼接 查找 截取 GESP3
C++ 模板

数据编码模板

原码、反码、补码——计算机如何表示和存储整数

原码 反码 补码 编码 GESP3
C++ 模板

枚举算法模板

穷举所有可能,逐一验证——最朴素但最可靠的算法思路

枚举 穷举 暴力 GESP3
C++ 模板

模拟算法模板

按题目描述的步骤逐步执行——忠实还原过程

模拟 过程还原 日期 闰年 GESP3
C++ 模板

进制转换模板

二进制、八进制、十进制、十六进制之间的互相转换

进制转换 二进制 八进制 十六进制 GESP3
C++ 模板

二维数组模板

矩阵的存储与操作——行优先、遍历、旋转

二维数组 矩阵 遍历 旋转 GESP4
C++ 模板

冒泡排序模板

相邻元素两两比较,大数下沉——最基础的排序算法

冒泡排序 排序 GESP4
C++ 模板

函数参数传递模板

值传递、引用传递、指针传递——理解参数如何传入函数

参数传递 值传递 引用传递 指针 GESP4
C++ 模板

函数的定义和使用模板

封装逻辑、提高复用——函数声明、定义、调用

函数 定义 调用 返回值 GESP4
C++ 模板

异常处理模板

try-catch 捕获运行时错误——让程序更健壮

异常处理 try-catch throw GESP4
C++ 模板

插入排序模板

将元素插入已排序部分的正确位置——对近乎有序的数据高效

插入排序 排序 GESP4
C++ 模板

文件重定向与读写模板

freopen 与 fstream——从文件读入、输出到文件

文件读写 freopen fstream 重定向 GESP4
C++ 模板

结构体模板

将多个不同类型的数据打包在一起——自定义数据类型

结构体 struct 成员 自定义类型 GESP4
C++ 模板

选择排序模板

每轮选出最小值放到前面——思路最直观的排序

选择排序 排序 GESP4
C++ 模板

递推算法模板

从已知推未知——找到状态转移方程,逐步求解

递推 状态转移 斐波那契 GESP4
C++ 模板

二分模板

在有序区间上快速查找——O(log n) 的搜索利器

二分查找 折半查找 GESP5
C++ 模板

唯一分解定理模板

任何正整数可唯一分解为质数幂的乘积

唯一分解 质因数分解 约数 GESP5
C++ 模板

埃式筛法模板

标记合数筛素数——O(n log log n) 的素数筛

素数筛 埃氏筛 筛法 GESP5
C++ 模板

归并排序算法模板

分治+合并——稳定排序,可同时求逆序对

归并排序 逆序对 分治 GESP5
C++ 模板

快速排序算法模板

选基准分区——平均最快的排序算法

快速排序 排序 分区 GESP5
C++ 模板

欧几里得算法模板

辗转相除法求 GCD 和 LCM——数论的基石

GCD LCM 辗转相除 欧几里得 GESP5
C++ 模板

线性筛法模板

每个合数只被最小质因子筛一次——严格 O(n)

线性筛 欧拉筛 GESP5
C++ 模板

贪心算法模板

每步选局部最优——不一定全局最优但往往有效

贪心 局部最优 区间调度 GESP5
C++ 模板

递归算法模板

函数调用自身——大事化小,小事化了

递归 递归终止 分治 GESP5
C++ 模板

链表模板

单链表与双链表的数组模拟——竞赛中最高效的实现

链表 单链表 双链表 数组模拟 GESP5
C++ 模板

高精度乘法模板

大数乘以普通整数——模拟竖式乘法

高精度 乘法 大数 GESP5
C++ 模板

高精度减法模板

大数减法:借位处理与正负判断

高精度 减法 大数 借位 GESP5
C++ 模板

高精度加法模板

用数组模拟大数加法——突破 long long 的限制

高精度 加法 大数 GESP5
C++ 模板

高精度除法模板

大数除以普通整数——模拟竖式除法

高精度 除法 大数 GESP5
C++ 模板

01背包模板

每个物品选或不选——最经典的动态规划模型

01背包 DP 背包 GESP6
C++ 模板

BFS搜索模板

广度优先搜索——逐层扩展,天然求最短路径

BFS 广度优先 最短路径 队列 GESP6
C++ 模板

DFS搜索模板

深度优先搜索——一条路走到底再回溯

DFS 深度优先 回溯 搜索 GESP6
C++ 模板

一维动态规划模板

线性 DP:最长上升子序列、最大子段和

一维DP LIS 最大子段和 GESP6
C++ 模板

二叉搜索树模板

左小右大的二叉树——查找、插入、删除

BST 二叉搜索树 查找 插入 GESP6
C++ 模板

哈夫曼树模板

最优编码树——带权路径长度最短的二叉树

哈夫曼 编码 优先队列 GESP6
C++ 模板

基础树形DP模板

在树上做动态规划——从叶子到根递推

树形DP 递推 DFS GESP6
C++ 模板

多重背包模板

每种物品有数量限制——二进制拆分优化

多重背包 DP 二进制拆分 GESP6
C++ 模板

完全背包模板

每种物品可以选无限次——正序遍历即可

完全背包 DP 无限 GESP6
C++ 模板

循环队列模板

数组模拟队列,取模实现循环——避免频繁移动元素

循环队列 数组模拟 取模 GESP6
C++ 模板

栈模板

后进先出 LIFO——括号匹配、表达式求值

stack LIFO 括号匹配 GESP6
C++ 模板

树形DP之最大独立集模板

选不相邻的节点使权值和最大

最大独立集 树形DP GESP6
C++ 模板

树形DP之最小支配集模板

选最少的点使每个点要么被选要么邻居被选

最小支配集 树形DP GESP6
C++ 模板

树形DP之最小点覆盖模板

选最少的点覆盖所有边

最小点覆盖 树形DP GESP6
C++ 模板

树的定义构造模板

邻接表存储树、构建树、遍历树——树形问题的起点

邻接表 建树 GESP6
C++ 模板

树的直径之双DFS模板

两次 DFS 求树上最长路径——简单直观

树的直径 DFS 两次 GESP6
C++ 模板

树的直径之树形DP模板

一次 DFS 求直径——维护最长链和次长链

树的直径 树形DP 最长链 GESP6
C++ 模板

树的遍历模板

前序、中序、后序、层序——四种遍历方式与互相转换

树遍历 前序 中序 后序 层序 GESP6
C++ 模板

格雷编码模板

相邻两个编码只有一位不同——镜子反射构造法

格雷码 Gray码 反射 GESP6
C++ 模板

类的创建和使用模板

封装数据与行为——面向对象编程的基础

class 封装 构造函数 GESP6
C++ 模板

队列模板

先进先出 FIFO——BFS 的核心数据结构

队列 queue BFS FIFO GESP6
C++ 模板

哈希表

键值映射、O(1)查找、冲突处理——从原理到实现

哈希表 哈希函数 冲突处理 GESP7
C++ 模板

图论基础

图的存储、DFS/BFS遍历、Flood Fill——图论从零开始

邻接表 DFS BFS FloodFill GESP7
C++ 模板

进阶动态规划

二维DP、区间DP、LIS/LCS、滚动数组优化——DP 从入门到进阶

二维DP 区间DP LIS LCS 滚动数组 GESP7
C++ 模板

组合数学与图论进阶

排列组合、杨辉三角、倍增法、最小生成树、最短路——GESP 最高级算法

排列组合 杨辉三角 倍增 最小生成树 最短路 Dijkstra Kruskal GESP8

没有找到匹配的内容

试试其他关键词或分类