算法层面
- 降低复杂度阶:$O(n^2) \to O(n \log n)$
- 避免重复计算:前缀和、哈希、记忆化
- 换更合适的数据结构:vector 代替 list,数组代替 map(值域小时)
实现层面
| 技巧 | 说明 |
|---|---|
| 局部性 | 连续内存访问更快 |
| 位运算 | x & 1 代替 % 2 |
| 内联简单函数 | inline(编译器也常自动内联) |
| 避免多余拷贝 | 引用传递 const vector<int>& |
| 全局数组 | 避免大局部数组栈溢出 |
C++ 特有
reserve(n)预分配 vectoremplace_back代替push_back(复杂对象)- 链式前向星存图比
vector<vector<int>>更省常数(边很多时)
对拍与压测
本地用大数据随机测,与暴力或 std 对拍,提交前估算运行时间。