常数优化

卡常检查清单

算法层面

  • 降低复杂度阶:$O(n^2) \to O(n \log n)$
  • 避免重复计算:前缀和、哈希、记忆化
  • 换更合适的数据结构:vector 代替 list,数组代替 map(值域小时)

实现层面

技巧 说明
局部性 连续内存访问更快
位运算 x & 1 代替 % 2
内联简单函数 inline(编译器也常自动内联)
避免多余拷贝 引用传递 const vector<int>&
全局数组 避免大局部数组栈溢出

C++ 特有

  • reserve(n) 预分配 vector
  • emplace_back 代替 push_back(复杂对象)
  • 链式前向星存图比 vector<vector<int>> 更省常数(边很多时)

对拍与压测

本地用大数据随机测,与暴力或 std 对拍,提交前估算运行时间。