比赛经验总结(主要针对NOI赛制,持续Update)
1.打完一个题以后,一定要检查文件名是否正确、文件输入输出是否正确,数组大小有没有开够,该开 \(long long\) 的地方有没有开,调试代码有没有删。
2.\(std::map\) 不能直接用迭代器遍历,因为 \(map\) 是用红黑树实现的,直接用迭代器遍历会锅。
3.用 \(printf\) 输出数据时,占位符一定要和数据类型相对应,否则在 \(NOI Linux\) 下会挂掉。
4.写 \(lcm\) 时,养成先除再乘的好习惯,有的题会卡这个东西。
5.对于很多题目,边界情况可能会爆掉你所能用的最大数据类型,需要特判解决。
6.如果要开形如 \(std::vector<int>v[1e6]\) 的数组,要注意这是不行的。\(vector\) 申请开这么多空间就要 \(1s+\) 的时间。 一般这样的开到 \(5e5\) 就已经非常极限了。
7.用vector时,要注意访问的时候是否访问了无效内存,vector的大小大致可以看为 已加入的数据个数 $ \times 2 $。
8.对于大码量的题目,最好写完一部分调一部分,全部压到最后调会大大增加调试难度。

浙公网安备 33010602011771号