![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法笔记
狠人王
怀着一颗热情的心,追随自己的梦想!
展开
-
DFS初步总结
dfs板子,有这个板子,写出正确的深搜依然很难,但是这个板子的思路却是一个很好的引导,很符合深搜的设计特性。即一条道走到黑,满足条件就退出,不满足分情况,选还是不选,可用vis[]作为标记数组,每次结束dfs过程还有回溯,还原现场。 int check(参数){ if(满足条件) return 1; return 0;}void dfs(int s...原创 2019-07-30 11:11:00 · 211 阅读 · 0 评论 -
判断三点共线
题目:已知平面上的三点P1(x1,y1),P2(x2,y2),P3(x3,y3), 判断它们是否共线。方法一:判断向量(p1–>p2)和向量(p1–>p3)的斜率是否相等。即 (y2-y1)/(x2-x1) == (y3-y1)/(x3-x1). 这个除式判断可以改写成乘式判断:(y3−y1)(x2−x1)−(y2−y1)(x3−x1)=0 (改写的原因是除法有分母为0或精度等...转载 2019-07-30 11:18:40 · 1246 阅读 · 0 评论 -
总结(递归)
概述什么情况下用递归:大问题可以通过求解子问题求得,大问题与小问题有相同的特征递归本质:通过自身调用自身缩小问题规模,边界条件结束,回溯还原现场以原问题为起点尝试寻找把状态空间(一个实际问题各种可能的情况构成的集合)缩小到已知的问题边界的路线,再通过该路线返向回溯遍历的方式就是递归。使用递归要求原问题与问题边界之间的每个变换步骤具有相似性,即遍历的每个状态都是相似的。即一个大问题可以转化为...原创 2019-07-26 15:39:22 · 201 阅读 · 0 评论