首页 > 其他分享 >搜索

搜索

时间:2024-02-05 10:48:21浏览次数:26  
标签:剪枝 ... dfs bfs 搜索 我们

搜索小技巧

一个搜索要知道如何剪枝,但剪枝是一个难点。

在写搜索的时候,我们要想会不会有冗杂的多余的搜索产生,如果有,我们就可以用记忆化搜索/剪枝

或者说如果后面的条件可以包含于前面的,那我们就可以用剪枝来处理掉

如:

给定一个数m,我要在若干个数中,找到一些数,使他的重量最接近我们的m值
(用搜索)

一看到一个和,我们就要感性的想到用前缀和,如果我们所有的数加起来都要比我们的m小的话,那我们就可以用一个包含的思想来把这道题给剪枝掉。

if(sum[c-1]+x<=m){
	ans=max(ans,sum[c-1]+x);
	return;
}

之后是状态判断,如何更新答案或者是返回

返回很简单

if(x<1||x>m||y<1||y>m||c[i][j]==1)//这个c代表是否我们访问过

然后更新答案

if(...){
ans=...
}

DFS,BFS

在做题中要思考好是用dfs还是bfs

dfs一定不要忘了回溯

c[i][j]=0;

dfs在什么时候继续深入要好好想一想就是dfs(s+1,a)

这一块一定要搞清楚,要不永远做不会搜索

bfs用队列,dfs用栈(对应思想)

bfs和dfs的板子其实很简单,也没有什么改变

code:

标签:剪枝,...,dfs,bfs,搜索,我们
From: https://www.cnblogs.com/qlwybz/p/18007516

相关文章

  • Windows自带搜索太慢?搜索神器listary推荐
    今天推荐的软件是listary,那个经常被拼写为listray的listary。相信很多人都用过everything,一款非常强大的搜索软件,但是,everything虽然搜索迅速,但是功能比较单一,开启比较麻烦,可能你打开everything的时间用listary已经搜完了。效果如下:还支持计算器,打开网址,网络搜索,命令(网络搜索......
  • Windows自带搜索太慢?搜索神器listary推荐_network
    今天推荐的软件是listary,那个经常被拼写为listray的listary。相信很多人都用过everything,一款非常强大的搜索软件,但是,everything虽然搜索迅速,但是功能比较单一,开启比较麻烦,可能你打开everything的时间用listary已经搜完了。效果如下:还支持计算器,打开网址,网络搜索,命令(网络搜索和......
  • 系统环境变量,python包导入的路径搜索机制,PYTHONPATH,sys.path
    系统环境变量的定义通过在环境变量里面加入所有软件的安装路径,当我们想运行某一软件时双击其快捷方式,此时,计算机除了在其当前目录下寻找该软件的.exe文件外(windows系统),还会在环境变量中搜索软件的路径,找到,运行。综上,Windows中的环境变量,当要求系统运行一个程序而没有告诉它程序......
  • 闭着眼睛写二分搜索
    本文就来探究几个最常用的二分查找场景:寻找一个数、寻找左侧边界、寻找右侧边界。而且,我们就是要深入细节,比如不等号是否应该带等号,mid是否应该加一等等。分析这些细节的差异以及出现这些差异的原因,保证你能灵活准确地写出正确的二分查找算法。另外再声明一下,对于二分搜索的每......
  • 地铁最优线路算法的求解(三)-深度优先搜索java实现
    多的不说,showmethecode,先上一段java代码1/*2*深度优先算法(DFS)算法生成所有可能路径3*startId:出发站4*endId:到达站5*graph:辅助邻接矩阵,若99站与35站相邻,6*则graph[35][99]=1,graph[99][35]=17*8*......
  • 优化拼多多关键词搜索接口:提高查询响应速度的技巧
    在电商平台中,关键词搜索接口是用户寻找商品的重要途径。一个高效、快速的搜索接口能够极大地提升用户的购物体验。针对拼多多这样的大型电商平台,优化搜索接口的查询响应速度尤为重要。本文将深入探讨如何通过多种方法来优化拼多多关键词搜索接口。1.使用缓存技术缓存是提升读取速......
  • 人工智能 第三版 第三章 知情搜索
    人工智能第三版第三章知情搜索知情搜索(informedsearch,也称有信息搜索):利用启发式方法,通过限定搜索的深度或宽度来缩小问题空间。启发式方法启发式方法的目的是大幅度减少到达目标状态所要考虑的节点数目,它们非常适合解决那些组合复杂度(combinatorialcomplexity)快速增长的......
  • 搜索旋转排序数组
    33SearchinRotatedSortedArray问题描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。(例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你......
  • 蒙特卡洛树搜索学习笔记
    目录前言蒙特卡洛树搜索的适用范围蒙特卡洛树搜索的作用算法流程前置:蒙特卡洛方法流程算法的设计思路:具体流程:简单描述:选择(算法的核心)扩展模拟回溯优化使用估价函数选择要扩展的点,而不是完全随机适当剪枝拓展总结参考文献前言人工智能Alphago,成为最顶尖的围棋大师,不由得让人产生......
  • 如何评价搜索算法的好坏?多角度解析
    前言大家好,我是chowley,搜索算法无处不在,程序员中比较高级的算法工程师,也大多数是做搜推广方向的,今天我就简单讲解一下,如何评价搜索算法!评价搜索算法搜索算法影响着用户的搜索体验和信息获取效率。在评价搜索算法的好坏时,需要从多个角度综合考量。本文将从准确性、排序质量、响......