Notes

· · 个人记录

  1. NOI 系列赛常见技术问题整理

  2. 约数个数估算 即d(n)=O(n^{\frac 1 3})

  3. 二分为了包含L,R左右端点,可令初始L=MIN-1,R=MAX+1

  4. 本地调试防爆栈小技巧
    工具 --> 编译选项 --> 编译器 --> 在连接器命令行加入以下命令:
    -Wl,--stack=128000000
    (近似128MB)

  5. 主定理

  6. map在[]访问一个元素的时候,如果元素不存在则创建一个,不注意可能MLE

  7. NOI Linux下用终端编译加上 -fsanitize=address,undefined 自动查RE、UB,若用code::blocks在链接器加上 -lasan -lubsan 数组越界直接 RE,有符号整数溢出直接 RE,返回值不为 void 的函数不 return 就返回直接 RE...能告诉你错在了第几行

  8. NOI Linux不要直接在桌面上写程序,中文目录会导致无法编译

  9. 刷Uva的题一定要注意输出格式!

  10. c++用逗号分隔的语句从左到右执行,不会有ub

  11. -Wall -Wextra -Wshadow

还有“消毒水”

地址错误:-fsanitize=address

内存错误:-fsanitize=memory

内存泄漏:-fsanitize=leak

未定义行为:-fsanitize=undefined

  1. 写线段树或其他涉及很多递归的ds时,考虑是否可以将很多递归的变量记录下来,可以减小常数。