枚举即可
搜索
dfs
NOIP骗分大法
(Dfs)判环:
跑够1s直接输出有环
当遍历到一个在栈里的点时,证明有环。
经典题:
经典题*2:
枚举每层高度,半径
剪枝1:剩下的体积维的最小侧面积+已搜的面积比已搜到的最优解大
(v=pi r^2 h,S=2pi 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)顺序的时候,可以用记忆化搜索