跳到主要内容

Part1. 语言入门

· 阅读需 7 分钟

1. 简简单单写程序

2. 顺序结构程序设计

2.1 变量的数据类型

2.2 变量的输入与输出

  • P5703 苹果采购 📖题解 📺视频
  • P5704 字母转换 📖题解 📺视频
  • P5705 数字反转 📖题解 📺视频
  • P5706 再分肥宅水 📖题解 📺视频

2.3 顺数结构程序设计案例

  • P1425 小鱼的游泳时间 📖题解 📺视频
  • P3954 成绩 📖题解 📺视频
  • P5707 上学迟到 📖题解 📺视频

2.4 额外加练

  • P5708 求三角形面积 📖题解 📺视频
  • P1421 小玉买文具 📖题解 📺视频
  • P5709 Apples Prologue 📖题解 📺视频
  • P2181 对角线 📖题解 📺视频

3. 分支结构程序设计

4. 循环结构程序设计

5. 数组与数据批量存储

6. 字符串与文件操作

7. 函数与结构体

Part2. 初步算法

8. 模拟与高精度

8.1 模拟方法实例

8.2 高精度计算

8.3 额外加练

9. 排序

9.1 计数排序

  • P1271 投票 📖题解 📺视频

9.2 选择排序、冒泡排序、插入排序

9.3 快速排序

  • P1177 快速排序 📖题解 📺视频
  • P1923 求第k小的数 📖题解 📺视频

9.4 排序算法的应用

  • P1059 明明的随机数 📖题解 📺视频
  • P1093 奖学金 📖题解 📺视频
  • P1781 宇宙总统 📖题解 📺视频

9.5 额外加练

  • P2676 超级书架 📖题解 📺视频
  • P1116 车厢重组 📖题解 📺视频
  • P1152 欢乐的跳 📖题解 📺视频
  • P1068 分数线划定 📖题解 📺视频
  • P5143 攀爬者 📖题解 📺视频
  • P1104 生日 📖题解 📺视频
  • P1012 拼数 📖题解 📺视频

10. 暴力枚举

10.1 循环枚举

  • P2241 统计方形加强版 📖题解 📺视频
  • P2089 烤鸡 📖题解 📺视频
  • P1618 三连击升级版 📖题解 📺视频

10.2 子集枚举

  • P1036 选数 📖题解 📺视频
  • P1157 组合的输出 📖题解 📺视频

10.3 排列枚举

  • P1618 三连击升级版 📖题解 📺视频
  • P1706 全排列问题 📖题解 📺视频
  • P1088 火星人 📖题解 📺视频

10.4 额外加练

  • P3392 涂国旗 📖题解 📺视频
  • P3654 First Step 📖题解 📺视频
  • P1217 回文质数 📖题解 📺视频
  • P1149 火柴棒等式 📖题解 📺视频
  • P3799 妖梦拼木棒 📖题解 📺视频
  • P2392 考前临时抱佛脚 📖题解 📺视频
  • P2036 Perket 📖题解 📺视频

11. 递推与递归

11.1 递推思想

  • P1255 数楼梯 📖题解 📺视频
  • P1002 过河卒 📖题解 📺视频
  • P1044 栈 📖题解 📺视频

11.2 递归思想

  • P1028 数的计算 📖题解 📺视频
  • P1464 Function 📖题解 📺视频
  • P1928 外星密码 📖题解 📺视频

11.3 额外加练

  • P2437 蜜蜂路线 📖题解 📺视频
  • P1164 小A点菜 📖题解 📺视频
  • P1036 选数 📖题解 📺视频
  • P1990 覆盖墙壁 📖题解 📺视频
  • P3612 秘密奶牛码 📖题解 📺视频
  • P1259 黑白棋子的移动 📖题解 📺视频
  • P1010 幂次方 📖题解 📺视频
  • P1228 地毯填补问题 📖题解 📺视频
  • P1498 南蛮图腾 📖题解 📺视频

12. 贪心

12.1 贪心与证明

  • P2240 部分背包问题 📖题解 📺视频
  • P1223 排队接水 📖题解 📺视频
  • P1803 凌乱的yyy 📖题解 📺视频

12.2 哈夫曼编码

  • P1090 合并果子 📖题解 📺视频
  • P3817 小A的糖果 📖题解 📺视频
  • P1106 删数问题 📖题解 📺视频
  • P1478 陶陶摘苹果升级版 📖题解 📺视频
  • P5019 铺设道路 📖题解 📺视频
  • P1208 混合牛奶 📖题解 📺视频
  • P1094 纪念品分组 📖题解 📺视频
  • P4995 跳跳!📖题解 📺视频
  • P4447 分组 📖题解 📺视频
  • P1080 国王游戏 📖题解 📺视频

13. 二分查找与二分答案

13.1 二分查找

  • P2249 查找 📖题解 📺视频
  • P1102 A-B数对 📖题解 📺视频

13.2 二分答案

  • P1873 砍树 📖题解 📺视频
  • P1824 进击的奶牛 📖题解 📺视频
  • P1024 一元三次方程求解 📖题解 📺视频

13.3 额外练习

  • P1678 烦恼的高考志愿 📖题解 📺视频
  • P2678 跳石头 📖题解 📺视频
  • P2440 木材加工 📖题解 📺视频
  • P3853 路标设置 📖题解 📺视频
  • P1182 数列分段 📖题解 📺视频
  • P1163 银行贷款 📖题解 📺视频
  • P3743 Kotori的设备 📖题解 📺视频

14. 搜索

Part3. 简单数据结构

15. 线性表

16. 二叉树

17. 集合

18. 图的基本应用

Part4. 基础数学与数论

19. 位运算与进制转换

20. 计数原理与排列组合

21. 整除理论

2024/04/程序设计竞赛_进阶篇

· 阅读需 26 分钟

第一章 常见优化技巧

1.1 双指针法

1.2 空间换时间

1.3 单调栈

1.4 单调队列

1.5 额外加练

第二章 前缀和、差分与离散化

2.1 前缀和与二维前缀和

2.2 差分

2.3 离散化

2.4 额外加练

第三章 分治与倍增

3.1 归并排序与快速幂

3.2 其它序列上的分治

3.3 倍增与ST表

3.4 额外练习

第四章 进阶搜索

4.1 状态剪枝

4.2 迭代加深与双向搜索

4.3 启发式搜索

4.4 额外加练

第五章 二叉堆

5.1 二叉堆的实现

5.2 优先队列

5.3 额外练习

第六章 线段树

6.1 线段树的建立与操作

6.2 线段树的应用

6.3 权值线段树

6.4 额外加练

第七章 树状数组与字典树

7.1 树状数组

7.2 字典树

7.3 额外加练

第八章 线段树的进阶用法

8.1 可持久化线段树

8.2 树状数组套权值线段树

8.3 额外加练

第九章 树

9.1 树的性质与遍历

9.2 树的直径与重心

9.3 最近公共祖先

9.4 额外加练

第十章 最短路

10.1 单源最短路径

10.2 负环与差分约束

10.3 次短路

10.4 多源最短路径与传递背包

10.5 额外加练

第十一章 最小生成树

11.1 最小生成树及其应用

11.2 次小生成树

11.3 额外加练

第十二章 连通性问题

12.1 无向图的边双连通性

12.2 无向图的点双连通性

12.3 有向图的强连通性

12.4 额外加练

第十三章 动态规划的引入

13.1 什么是动态规划

13.2 状态、转移与有向无环图

13.3 拓扑序与记忆化搜索

13.4 动态规划的解法

13.5 额外加练

第十四章 线性状态动态规划

14.1 单序列问题

14.2 多序列问题

14.3 高维问题

14.4 额外加练

第十五章 区间与环形动态规划

15.1 区间动态规划

15.2 环形动态规划

15.3 额外加练

第十六章 树与图上的动态规划

16.1 树上动态规划

16.2 图上动态规划

16.3 额外加练

第十七章 状态压缩动态规划

17.1 状态压缩是什么

17.2 状态压缩的一般技巧

17.3 状态压缩与其他算法的交叉应用

17.4 额外加练

第十八章 动态规划的设计与优化

18.1 如何优化转移

18.2 额外加练

第十九章 进阶数论

19.1 模意义下的数和运算

19.2 乘法逆元

19.3 同余方程与中国剩余定理

19.4 线性筛与积性函数

19.5 欧拉函数

19.6 额外加练

第二十章 组合数学与计数

20.1 集合与容斥原理

20.2 常见的组合计数方法

20.3 二项式定理

20.4 卡特兰数与斯特林数

20.5 额外加练

第二十一章 概率与统计

21.1 概率模型

21.2 数学期望

21.3 额外加练

第二十二章 基础线性代数

22.1 向量与矩阵变换

22.2 高斯消元

22.3 额外加练

2024/03/如何开始写题解or博客

· 阅读需 2 分钟
小鱼干
干饭人

准备

​ 首先需要有一个能发布文章的账号。现阶段网络上有许多可以发布文章的地方,CSDN、博客园、简书、洛谷等都是可以免费发布文章的。

​ 其次是需要有写的素材。比如有一道经典的题,我们进行了认真的思考,可以写出思考的过程和实现方法;也可以整理所学的内容成为一篇文章。

2024/01/如何生成测试数据

· 阅读需 4 分钟
小鱼干
干饭人

介绍

本项目源自于Testlib。结合实际工作中的需求进行了一些本土化处理,也是目前出数据的主力工具。

Testlib 是一套历史悠久的出题辅助工具库。它可以用于书写数据生成器(Generator),数据校验器(Validator),答案检查器(checker),交互器(interactor)。

著名编程竞赛平台 Codeforces 是 Testlib 的最大使用者。在 Codeforces 上出题,上面提到的四种程序都需要使用 Testlib 完成。