qbzt培训之枚举与搜索



枚举即可

搜索

dfs

NOIP骗分大法
\(Dfs\)判环:
跑够1s直接输出有环
当遍历到一个在栈里的点时,证明有环。
经典题:

经典题*2:

枚举每层高度,半径
剪枝1:剩下的体积维的最小侧面积+已搜的面积比已搜到的最优解大
\(v=\pi r^2 h,S=2\pi r h\),最大半径是当前的半径-1,可以算出来\(h,S\)
剪枝2:如果剩下的所有层都使半径最大,当前的\(h\)达到最大,剩下层的\(h\)都是1(即使体积最大化)都无法加出\(v_总\),剪枝
体积最小化都会总体积比\(v_总\)大,剪枝

bfs

就是一圈一圈的搜
广搜求单源最短路(图中边权为1)
直接搜
若边权为0或1
1.用双端队列,保证队列前半段的\(dis\)\(a\),后半段的\(dis\)\(a+1\)
2.在无向图中,使用并查集将0边相连的点连在一起

记忆化搜索

把搜到的东西记下来,当下一次用到的时候直接使用。
\(dp\)相比,可以自己找到拓扑序。但是常数会大。在不确定\(dp\)顺序的时候,可以用记忆化搜索

posted @ 2020-10-01 20:04  千载煜  阅读(136)  评论(0编辑  收藏  举报