1.当一个题各种思路都尝试过但是都不行,或者题目本身没有任何逻辑结构,那么这个题一定是暴力的方法。而且时间复杂度是可以经过一些比较偏的优化方法(可能要涉及数学的期望推导)直接暴力通过的,或者暴力本身就是可以直接过的。
2.最值记录一定要实现设计好初始值,最小值要初始设为最大值,反之亦然。
3.搜索类题(穷举类)往往用bfs优化,双向广搜也只有bfs有
4.涉及链表操作,如果空间够用,用数组模拟链表是最好的,O(1)读写且O(1)操作。不要用c++STL里面的list,不好用。
5.vector.size()是无符号整数,这意味着无法表示负数,所以.size()<-1,也意味着.size()-x无法小于0
tips:
1.离散化带来的“粘连问题”
如 6,8 在原本是分离的两个数,但是在离散化数组中可能是连续的。
在某些对连续性要求严格的情况下(比如算面积,洛谷-Overplanting S),这种粘连问题导致错误(算面积时多算,因为两个本来分离的数在离散数组中连续了)
解决方法:离散数组中假如两个数之差>1(即两个数原本是分离的),就在两个数中间中随便插入一个数(一般都直接插前一个数+1)
667

被折叠的 条评论
为什么被折叠?



