愚蠢的错点
作者:
Livinfly
,
2021-04-28 10:15:26
,
所有人可见
,
阅读 396
- 邻接表,h[]忘记初始化。多组数据时,idx未初始化(会造成数组越界)
- 当使用并查集时,注意自己写的并查集是不是fa[x]随时都是x的祖宗,若不是,记得要用getfa(x)
- 变量名有冲突
y1
, next
, prev
, has
…
- 在特别情况下.size()和int整型变量比较时会出错,所以尽量保证式子的运算结果是正数,因为如果是负数,unsigned int类型的变量会变成超大的正数。
- priority_queue 默认是大根堆 < Type,vector[HTML_REMOVED],greater[HTML_REMOVED] >是小根堆
- 在自己写的函数里引用数组如dist[], memset(dist, …, sizeof dist)会出问题(可能时因为引用过来的是指针?), 需要用其他的变量
- 图论采用虚拟源点时,边数M的值要加上N。
- double类型存在精度误差,尽量不用
==
判断 与 INF 判断 可以采取 和 INF / 2 来判定
- 在函数中引用数组时,用memset() sizeof 传入的数组 是不对的。
- 图论中加入虚拟源点,因为要给所有点和虚拟源点连边,要把原来的边数 + N 或者 N * 2
- ~h[u] 是 h无出边的情况,返回的是false!!! 要么 !~h[u] 要么 h[u] == -1
- 线段树要开4倍N
- 二分注意二分的数值的大小可能要开LL, mid同理
- dfs or … if 先判断数组的下标会不会越界再判数组的值!!! 不然会REqwq 模拟赛教训,小C救我
- 字符串不要memset
- &的优先级比==高
- 尽量不要相似的代码复制粘贴,很容易出错然后又不知道错在哪
- map类型, 直接用mp[str], 它自动就插入里面了, 也就是说判里面没有这个元素必须要用mp.count(str) == 0!!!
- static 慎用!!! 貌似 static cnt = 0; 这里赋值只会在第一次有效
- 字串一般是连续的, 子序列一般是不连续的
- DP的最终答案, 要看状态表示是什么, 题目要求是什么, 不总在最后一行, 如这题这种找到一个区域, 最大值可能出现在中间, 枚举答案要全部枚举一遍或者, 边…边更新!!!
- 强制转类型
(LL)a*b+c*d
会存在问题, 类型强制转换貌似是还是先按照运算顺序进行, 然后LL和int操作结果是LL,这个写法只转了a的类型.(LL)(a*b+c…)这样只是改变了括号里一坨的计算完的数据的类型.