一周没写了
还是慢慢总结一下本周的收获
part1:新知识:
1)斜率优化(好像不会考),用斜率的思想求解最值(其实有点像线性规划),一般来讲核心是转化为维护一个坐标系上的凸包
2)剪枝:
1排除等效冗余
2最优化剪枝
3可行性剪枝
4搜索顺序剪枝
3)双端搜索:
2*(2^(n/2))<2^n
2*((n/2)!)<n!
bfs:转移可以打包成函数代码量和时间复杂度一样减半
dfs:前半段照常转移,后半段完成时的check要考虑上前半段的内容(可以二分、CDQ之类的)
4)多源广搜:起始点全部入队就对了
5)优先队列广搜:用优先队列保证每次转移都使用最优解转移,保证结果的最优化(用于每次转移代价不一定的时候)
6)A-star:解决(部分解决)优先队列优化中陷入局部最优解导致偏离整体最优解过远的情况
设计估价函数(估价必须优于实际答案),每次取估价最小的(优先队列)
7)迭代加深dfs:复杂度类似广搜,但是利用限制深度的dfs便于转递复杂的状态
8)IDA*:搜索的究极无敌螺旋霹雳进化版本:
A*+迭代加深,有估价函数的迭代加深dfs,结合了估价函数的难想和迭代加深的难调
原理:估价优于实际消费,故如果估价已经超出限制,则必定失败直接结束(其实感觉更像一种剪枝策略)
原来搜索都有那么多复杂的知识点(
part2:细节点
斜率优化
1)队列不能为空,想好第一次可以放的值(因为要更新时计算斜率)
2)精度问题:用乘不用除
3)好好数学推导鸭(注意斜率=dx/dy,想好哪个横哪个纵)
关于搜索
1)有关二维地图时,注意横纵坐标及上限(当时调一个迷宫调将近一个小时然后发现问题)
2)估价函数一定一定要比实际更优啊
为什么细节那么少??因为,都是细节,只写几个比较常见的和比较脑梗的。
part3:
金句积累:
数缺形时少直观,形少数时难入微,数形结合百般好——华罗庚
标签:剪枝,21,迭代,队列,dfs,斜率,估价 From: https://www.cnblogs.com/Ga1ahad-and-Scientific-Witchery/p/17419461.html