TIPS
发现自己十分粗心,几乎总是会错细节。
所以只是一些想要提醒自己注意的东西,当然也提醒看到这的你。w
新年要好好努力w 要记得写新年计划w
等期末考后再更新一下博客。
正确性
最值标记要注意初始化的取值。
INF = 0x3f3f3f3f
是对int
的取值,要考虑是否过小;- 下界选择是否过大:
lower = 0
或者是lower = -INF
; INF
只能memset
一个int
数组;long long
或是double
若是在struct
或者是class
考虑直接使用构造函数赋始值。
取模 检查三个地方
- 预处理
- 执行过程
- 输出控制(有可能是负数需要加一个模数吗?)
强制在线(输入解密)
- 注意输入范围提示,$ l < r $ 不代表 $ l' < r' $ 。
- 维护信息的时候一定要明确区分维护的是当序列、前缀和序列、差分序列的哪一个。
特殊情况(极限情况)
- 区间长度为零
- 特殊定义
- 进行 XJB 优化的时候注意变量类型!!!防止用一个 int 拷贝 long long 的情况出现然后被卡成 0'
- Trie 及基于 Trie 的数据结构内存池要乘一个 $ |\Sigma| $
!!!对拍结束的时候要检查
- 保留最终提交文件及文件名
- 代码内输入输出文件的名称
- (via WHJ) 不如对拍脚本先
copy
再fc
避免代码内文件名称的问题
- 蛤习
ull
自然溢出base
选四个质数
时间常数
- 预处理的范围可由输入范围确定从而减少预处理量orz
调试
发现数据大某个范围全部出错,可能/须重点检查
- 大数处理不当(long long)
- 取模处理不当(比较不可能
- 程序中某一处参数有误,特别是那些只有输入增加很大才会增加一点的变量
- 网格图卡 SPFA (TBP)
FFT
关于 FFT 的实现,要注意
- 把长度开到度数的两倍。
- 用
long long
进行中间运算和存储,谨防出错。
# orzfr
%%%%orzfr%%%%
您太强啦