马上就要CSP了,将这一段时间内犯的zz错误记录一下,希望CSP的时候不要再犯
- 将
==
写成=
,或将=
写成==
- 数组开小……
- 线段树下传标记时顺序或标记出错
- 定义的结构体之间赋值是和结构体里的元素个数有关的(\(O(n)\)),不是\(O(1)\)
- 结构体的成员函数的参数如果使用该结构体类型(比如定义了一个
node
的结构体,有一个成员函数update(int l, int r, node x)
)好像会出问题(可以编译,但Windows下会RE)
- 模数写错(一定要看清楚)
- 有关矩阵,长和宽、横坐标和纵坐标一定要分清楚
- 线段树不要忘了初始化(建树),不要写了
build
却没加进主函数里……
- 减法取模时要
(a - b + mod) % mod
- 多取模,宁愿常数大一些也要多取模
vector
的size
函数的返回值是vector::size_type
,一般情况下等同于size_t
,size_t
是sizeof(x)
的返回值类型,依实现定义的,一般情况下32位系统是uint
,64位系统是ull
。所以用q.size() - 1
的时候要小心q.size() == 0
然后溢出的情况
- Dev-C++不能调试时,可以在编译器选项中加入
-g
,单击调试,弹出对话框“项目没有调试信息……”时,单击No就可以了 也可以直接用gdb调试
- 在Dev-C++的编译器选项中加入
-Wall
可以看到更多的warning
- rank是某个库里的函数名,用rank做变量名或函数名会CE