摊还 O(1) 的动态数组

场景:~/work/pf/dyn.cpp 手写了一个动态数组,按指令 push / pop / get 操作。它每次满了只多开一格,push 一多就慢得不行。 任务:改成容量翻倍,让随机的 30 万条指令在 2 秒内跑完;输出格式不变。ma

开始练习 →

修好近似比的检查

场景:~/work/pf/cover.cpp 对每张小图算出贪心顶点覆盖和暴力最优,再输出近似比(放大 100 倍)。可输出的比值不对,而且有的图上贪心收的点明显太多。 任务:修好 cover.cpp 里的两个 bug,让每张图输出正确的「

开始练习 →

取模是什么

第 1 步:7 个东西,每 3 个分一组 第 2 步:分出第一组 第 3 步:再分出第二组 第 4 步:剩下凑不满一组的:余数 表达式 a % b 求的是【0】。

开始练习 →

数论研究什么(C++)

数论主要研究的是【0】。

开始练习 →

整除是什么意思(C++)

若 a % b == 0,说明【0】。

开始练习 →

为什么算法题爱用取模(C++)

算法题常要求「结果对某个数取模」,最主要是为了【0】。

开始练习 →

算一下 7 % 3(C++)

7 % 3 等于【0】。

开始练习 →

17 除以 5 余几

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; int main() {

开始练习 →

欧几里得算法求什么

第 1 步:a=48,b=18 第 2 步:换成 (b, a%b) = (18, 12) 第 3 步:换成 (b, a%b) = (12, 6) 第 4 步:换成 (b, a%b) = (6, 0) 第 5 步:b 变成 0,a 就是答案

开始练习 →

辗转相除的核心一步

辗转相除里 gcd(a, b) 等于 gcd(【0】)。 本节模型:my_gcd(a, b) 辗转相除求最大公约数,my_lcm(a, b) = a / gcd * b 求最小公倍数。

开始练习 →