目录
- 算法相关
- \(\text{stl}\) 相关
(随时补充)
- 杂项
- 数学
1. 算法相关
1. 并查集
- 种类并查集处理关系时一定要考虑全面(比如天敌关系不成立有是同类和捕食两种情况)。
- 合并时要用根节点。
- 种类并查集空间开几倍。
- 带权并查集
px
(father)不要和 x
写串。
- 合并一定要是两个
find
后的合并。
2. 二分
check
想好返回值是什么。(什么时候是成立)
3.DP
- 更新时注意能否使用一个元素更新当前元素,某些值看似可以用来更新,但实际上是有矛盾点在的,比如 P1399 [NOI2013] 快餐店 中,不可直接使用
a[i]
更新 b[i]
。
4. 高精度
- 注意写法
- 位压写法输出时注意
%04lld
。
5. 缩点
- 记得将原本的编号变成缩点后的编号(点)。
6. LCA
- 倍增 lca 要遍历到零,
for(int i = 17;i >= 0;i -- )
,如果写成 i >= 1
会死得很惨。
7. 线段树
tag
记得和 t
开一样空间。
tag
尽量赋成 -1
,以防 tag[k] = 0
,但是需要操作的情况。
8.树剖
dfn
的记录要在 dfs2
中进行。
2. \(\text{stl}\) 相关
next_permutation
要先 sort。
map
和 unordered_map
判断元素有无用 count
,如果直接 map[x]
会涉及 map
内元素是否为 0
的问题。
3. 杂项
- 部分开
long long
时,如果有 long long
和 int
的运算要记得将 int
转化为 long long
。 (1ll *
)
- 不要写
int
类型的函数不返回值,会 TLE
。
- 在循环内进行统计时, 应考虑有无在中间
continue
或 break
的情况。
double
不要 memset
,也不要 f[i]=-0x3f3f3f3f
。
- 一定要写
cin
优化。
- 记得看数据范围开
long long
!!!!!
- 记得
cin
优化。
- 当键值对中键较大时,map 复杂度优于 unordered_map。
int * int * long long
前两个可能炸 long long。
4. 数学
1. 排列组合
- 要处理 0 的阶乘和逆元(重点)。
- 数据量较大时,阶乘处理组合数可能会比较慢。如果可以,使用递推求组合数。
posted @
2025-09-16 19:47
yanbinmu
阅读(
2)
评论()
收藏
举报