个人常见bug记录
作者:
泠鸢yousa
,
2021-04-20 17:04:43
,
所有人可见
,
阅读 303
- 持续更新中,希望各位hxd可以互相交流一下自己的bug记录
一: 语法篇
(1).数据类型
- 浮点数与整数
蓝桥2021:B组求直线
int a = 5, b = 2, c = 2;
double d = (a - b) / c;
这里得到的d为正数
需要 double d = (double)(a - b) / c;
二:编码篇
(1). 空间问题
- 空间开小了的情况:
二维的bfs:队列q的规模应该是N * N
图论中:使用虚拟节点建图时,边的上界M多于题目所说的上界
- 越界的情况:
dfs时层数过多
循环队列中hh,tt到达N时归零
(2). 死循环问题
- 初始化:如图论中的h
- dfs:basecase边界
- 重复访问:bool数组st去重
(3). 初始化问题
- 多组数据:
- DP与图论的入口点(个人喜欢将DP与图论的初始化以及转移相联系理解):根据定义
- 多组测试数据时,spfa判断有无正负环,每次初始化时都要讲st数组置为false,因为一旦出现正负环将直接退出while,而不会保证所有的元素出队列。
相关题目393.雇佣收银员
(4). 备份问题
- bellman-ford算法
- 某个状态作为节点的dfs中,回溯时对于状态的备份:如数独
三:数据结构
(1)堆:
- 删除或者替换某个位置的元素,既要up(画图举例理解,删除堆顶之所以不需要up,是因为没必要,但是其他位置必须up + down)也要down。
相关题目:839.模拟堆
(2)并查集
- 连通块代表中根节点维护相关信息
四:基础算法篇
(1). 二分
- 枚举型二分:要保证答案ans在L和R之间,注意这里的L和R不一定仅仅只是题目表面所言的范围,如负数和小数等情况。
相关题目:
790.数的三次方根
- 留待理解:是否可以用一个更大范围将答案覆盖
问题:可能会产生正负环。
相关题目:
393.雇佣收银员
(2). 高精度
五:逻辑篇
(1). 前导零
- 高精度
- 数位DP
预处理f[][]数组时
统计digit时
(2). 集合角度分析问题
- 不遗漏:
- 在不遗漏的基础上不重复:
3.
(3). 差分约束
- 前缀和中的不等式
(1)Si自身需满足的条件
(2)易忽略xi = Si - Si-1
所需满足的条件
相关题目
393.雇佣收银员
362.区间
- 枚举dist为定值需要满足的不等关系
Si = C,S0 = 0
Si >= S0 + C
Si <= S0 + C
相关题目:393.雇佣收银员
六 图论
(1) 二分图
- 限于无向图
最大独立集只能在无向图中使用,最小路径覆盖是在DAG图中使用
相关题目:
379.捉迷藏
2.