写矩阵快速幂

场景:~/work/nt/mat.cpp 读一个 k×k 矩阵,要输出它的 n 次方模 p,可 mat_pow 还没写。 任务:补全 mat_pow。n 可以到 10^18,n = 0 要输出单位矩阵。make 编译后用 sample.tx

开始练习 →

修好合数模数的逆元

场景:~/work/nt/inv.cpp 求逆元,模数是质数时对,模数是 9、15 这种合数时就错了。 任务:修好 inv_mod,让任何与 a 互质的模数都算对。make 编译后用 sample.txt 自测。 可操作范围:只在分给你的这

开始练习 →

修好 CRT 合并的溢出

场景:~/work/nt/crt.cpp 合并同余方程。模数都小的时候对,有一个模数到了 10^12 级就错了。 任务:修好合并那一步的乘法溢出。make 编译后用 sample.txt 自测;check 会用「小模数 + 大模数」的随机数

开始练习 →

找出 CRT 的反例

场景:~/work/nt/crtbad.cpp 解两个同余方程,却直接套用了「模数两两互质」的公式。 任务:按 ~/题目.txt 的要求(m1 是指定的数,m2 ≤ 1000)找一组 r1 m1 r2 m2,让它的输出和正确答案不一样,写进

开始练习 →

一排挨着放的数据叫什么

一批数据在内存里一个挨一个连着放,整体叫一个【0】。

开始练习 →

指明第几个的数字叫什么

要取出其中某一个,得说清是第几个。这个用来指位置的数字叫【0】。

开始练习 →

下标从几开始数

C++ 里数组的下标,从【0】开始数。

开始练习 →

为什么按下标取特别快

第 1 步:5 个数一个挨一个连着放 第 2 步:只要记住起点在哪 第 3 步:要下标 3:起点往后跳 3 格 第 4 步:一步到位,和有多少个无关 3 7 5 9 4 起点 不管这排有 10 个还是 100 万个,按下标取其中一个都一样快

开始练习 →

什么时候数组不划算

数组最不划算的场景是【0】。

开始练习 →

按下标取出来的是哪个

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

开始练习 →