万能的搜索--之简介(一)

* 搜索可能是在 NOIP 中使用范围最广的算法,大部分的题目,在想不到正解的情况下,总能写个搜索(我们称之为的暴力)来得到部分的分数。

* 搜索,严格说不上是一个算法,是一种编程的思路:通过穷举所有的可能性,我们模拟问题的处理步骤,直到找到问题的解。
* 穷举所有的可能性就注定了时间和空间花销肯定会很大,所以一般只有在数据范围较小的时候能使用搜索算法。
* 搜索算法主要分为两类:
1 DFS(深度优先搜索);
2 BFS(宽度优先搜索)。

1、

2、

常见的几类搜索问题:

排列问题
枚举1~n的排列
组合问题
选谁,不选谁
路径问题
下一步,该往哪里走

3、写搜索要关心什么?

--有哪些常用的搜索算法
--问题有解时能否找到解
--找到的解是最佳的吗?
--什么情况下可以找到最佳解?
--求解的效率如何

大略了解这么多就可以了,重要的是代码。

此为个人略解,转载请标明出处:http://www.cnblogs.com/rmy020718/p/8836106.html

原文地址:https://www.cnblogs.com/rmy020718/p/8836106.html

时间: 2025-01-17 14:47:11

万能的搜索--之简介(一)的相关文章

【万能的搜索,用广搜来解决DP问题】ZZNU -2046 : 生化危机 / HDU 1260:Tickets

2046 : 生化危机 时间限制:1 Sec内存限制:128 MiB提交:19答案正确:8 题目描述 当致命的T病毒从Umbrella Corporation 逃出的时候,地球上大部分的人都死去了. 麻烦的是,他们并没有真正的死去. 爱丽诗在一个狭窄的巷子中,遇见了n个丧尸(编号1-n),巷子太窄了,爱丽诗只能按顺序解决它们. 爱丽诗擅长用匕首和弓箭,当爱丽诗面临编号为i的丧尸时,匕首每次只能解决一个丧尸用时为a[i],弓箭每次能且只能解决两个相邻的丧尸(丧尸i,和丧尸i+1),用时为b[i].

第四章、万能的搜索

第一节.深度优先搜索p78 输出全排列的 dfs 方法 #include <stdio.h> int a[10],book[10],n; void dfs(int step) { int i; if(step==n+1) { for(i=1;i<=n;i++) printf("%d",a[i]); printf("\n"); return; } for(i=1;i<=n;i++) { if(book[i]==0) { a[step]=i; b

elasticsearch搜索类型简介

简单搜索 GET请求非常简单--你能轻松获取你想要的文档.让我们来进一步尝试一些东西,比如简单的搜索! 我们尝试一个最简单的搜索全部员工的请求: GET /megacorp/employee/_search 接下来,让我们搜索姓氏中包含"jake"的员工.要做到这一点,我们将在命令行中使用轻量级的搜索方法.这种方法常被称作查询字符串(query string)搜索,因为我们像传递URL参数一样去传递查询语句: GET /megacorp/employee/_search?q=last_

【转】google hacking 谷歌搜索方法简介

在csdn上看到的一篇博文,转过来了.地址在前面 原文: 搜索是一门艺术. 说起Google,可谓无人不知无人不晓.作为世界第一的搜索引擎,其强大的搜索功能,可以让你在瞬间找到你想要的一切.不过对于普通的计算机用户而言,Google是一个强大的搜索引擎:而对于黑客而言,则可能是一款绝佳的黑客工具.正因为google的检索能力强大,黑客可以构造特殊的关键字,使用Google搜索互联网上的相关隐私信息.通过Google,黑客甚至可以在几秒种内黑掉一个网站.这种利用Google搜索相关信息并进行入侵的

万能的搜索3

大家小的时候都玩过迷宫的游戏,迷宫里面有障碍物有一个出口,和一个入口,通过入口,走到出口,你就找到一条路线. package 中介者设计模式; import java.util.Scanner; public class MainMain { private static int col = 0; private static int row = 0; //地图 private static int a[][] = new int[50][50]; //标记地图中的点 private stati

万能的搜索--之BFS(三)

接着(一)start (二)广度优先搜索(BFS) 广度优先搜索(又称宽度优先搜索算法)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型.   Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想.其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果.换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止. 广搜的核心思想就是:从初始结点开始,产生第一层节点,检查目标结点是否在这些后继结点之中,

万能的搜索--之补充(四)

(三)迭代加深搜索 目的: 解决宽度优先的空间问题和深度优先不能找到最优解的问题.思想: 首先给DFS一个比较小的深度限制,然后逐渐增加深度限制,直到找到解或找遍所以分支为止. (四)启发式搜索 利用知识来引导搜索,达到减少搜索范围,降低问题复杂度的目的.启发信息的强度强:降低搜索工作量,但可能导致找不到最优解弱:一般导致工作量加大,极限情况下变为盲目搜索,但可能可以找到最优解 SO要合理地引入启发知识,在保证找到最佳解的情况下,尽可能减少搜索范围,提高搜索效率. 定义一个评价函数f,对当前的搜

es 搜索功能简介

DSL 语法介绍 语法 范围 /_search 集群上搜索所有的索引 /index1/_search index1 /index1,index2/_search index1和index2 /index*/_search 以index开头的索引 RUL 查询:使用q,指定查询字符串,查询内容是kv键值对 curl -XGET "http://127.0.0.1:9200/kibana_sample_data_ecommerce/_search?q=customer_first_name:Eddi

[转]搜索命令简介

An introduction to search commands Did you know you can search Google for web pages which were published in a certain timeframe? Did you know it often better to use Yahoo to work out your back links as you can exclude your own internal links? In Yaho