各种搜索

article/2025/8/23 11:22:28

搜索


本校的Lazer2001 学长为我们讲了搜索(乱搞)

  • 搜索
    • 基础:位运算
      • 超级基础
      • 感觉有点难度?
      • bitset
      • 例题:位运算 & bitset
    • 基础搜索
      • DFS
      • BFS
    • 特殊的搜索方式
      • 双向DFS搜索
      • 双向BFS搜索
      • 哈希
      • 康托展开
      • 迭代加深搜索(IDDFS)
        • 例题:埃及分数
        • 解答
      • 启发式搜索(A∗A∗A^{*})
        • 估价函数
        • 例题:斗地主
    • 总结(垃圾话)

基础:位运算

(对于二进制数 X X

超级基础

判断第i位是否为1:X&(1<<(i-1))
将第 i i 位赋值为1:X|(1<<(i-1))
将第i位赋值为0:X&(X^(1<<(i-1)))
将第 i i 位取反:X^(1<<(i-1))

感觉有点难度?

将最后一个1变成0:X-lowbit(X)=X-X&(-X)
统计1的个数:while(X) {X-=lowbit(X); num++; }
枚举子集:for(s=X;s;s=(s-1)&X)
(复杂度n3

bitset

其实不会
总结如下:

利用位运算压缩过的bool数组
可以对两个bitset进行正常的与、或、非、左移右移等位运算
还有一些方便的操作:any,none,count,flip
空间、时间效率都有较大提升

其实就是把很多个bool->几个long long的操作了。

例题:位运算 & bitset

  1. 给定 n n 个数,求它们所有子集和的异或和。n1000,ai106
  2. n皇后问题 n15 n ⩽ 15

基础搜索

DFS

Pa3oNV.png

BFS

Pa3ThT.png

Lazer2001 前辈的神奇代码。

特殊的搜索方式

各种

双向DFS搜索

考虑一个问题的解空间为 xy x y 规模级别,每个解可有两段结果并起来,即可考虑利用双向DFS搜索。

Θ(xy)Θ(xy2)logxy2 Θ ( x y ) → Θ ( x y 2 ) ∗ l o g x y 2

常用于统计类搜索问题。

双向BFS搜索

考虑一个问题的解空间为 xy x y 规模级别,每个解可有两段结果并起来,即可考虑利用双向BFS搜索。(就是复制的)

Θ(xy)Θ(xy2)Θ(judge) Θ ( x y ) → Θ ( x y 2 ) ∗ Θ ( j u d g e )

常用于最优化搜索问题。

哈希

Pa8DKJ.png
Pa8w2F.png

康托展开

Pa8d8U.png

迭代加深搜索(IDDFS)

有限度的乱搞
Pa8g56.md.png

例题:埃及分数

将一个分数 ab a b 表示成多个单位分数(不能相同)的和,要求用的分数个数尽量少,个数相同时最小的分数尽量大。 1<a<b<500 1 < a < b < 500

解答

每次限制使用的分数数量
利用深度上限进行剪枝:之后的分数都严格比当前小,如果在规定步数内按照当前分数的大小都无法达到要求,则剪枝。

启发式搜索( A A ∗ )

Pa80v4.png

估价函数

决定了“搜索的顺序”
需要满足什么条件?
f(n)=g(n)+h(n) f ( n ) = g ( n ) + h ( n )
h(n)r(n) h ( n ) ⩽ r ( n ) ,其中 h(n) h ( n ) 为估价函数, r(n) r ( n ) 为实际代价
A A ∗ 算法
只要找到解,则一定是最优解
BFS、dijistra都是(没有任何优化的) A A ∗ 算法

例题:斗地主

NOIP原题(UOJ(随机数据)/洛谷(加强版))

预处理: n7 n ⩽ 7 时,用HASH表(或map)直接存答案
不搜索单张,贪心打小牌。

堪称搜索神题

总结(垃圾话)

Lazer2001学长因为在SCOI2018上被电子神大卡没了了100+,(张叔叔博客)但他仍然是一位优秀的老师。他的随和给我们留下了深刻的印象。
他用了一晚上告诉我们他的经验教训,拳拳真情,令我等不禁见贤思齐(见不贤内自省)

希望他在今后的奋斗路上,长风破浪,步步高升!


http://chatgpt.dhexx.cn/article/nBXtZlJf.shtml

相关文章

搜索APP

文章目录 目录 文章目录 概要 功能模块图 技术名词解释 架构设计 小结 概要 本项目系统整体实现了登录功能、注册功能&#xff0c;首页页面的搜索功能、首页内容&#xff0c;我的界面中个人信息的增删改查、浏览记录、退出登录功能。 在App中用到Activity、Service组件…

搜索大全。

蓝桥杯搜索大全 练功&#xff08;bfs,相同步数的节点在队列中该以如何顺序摆放机器人塔&#xff08;最底行定则全局定&#xff0c;如熄灯问题&#xff09;卡片换位存储信息一维坐标和二维坐标的转化 迷宫与陷阱 练功&#xff08;bfs,相同步数的节点在队列中该以如何顺序摆放 最…

安装SQL Server2012

一、软件介绍 Microsoft SQL Server 是一个全面的数据库平台&#xff0c;使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能&#xff0c;使您可以构建和管理用于业务的高可用和高性能的…

SQL server2012 安装

SQL server2012 安装教程 &#xff08;简体中文版的安装&#xff09; 首先安装需要安装包吧&#xff1a;https://pan.baidu.com/s/1KoirFKEOv1363TXVWtE2Zg 密码&#xff1a;xsg1 下载后有一个ISO镜像文件&#xff0c;直接用解压软件解压就行&#xff0c;打开解压后的文件夹&…

SQL Server2012 安装方法详解

欢迎大家关注我的公众号&#xff0c;添加我为好友&#xff01; 首先要找到自己下载好的安装包&#xff0c;并且保持网络畅通。 最近有不少细心的小伙伴反应安装包有问题&#xff0c;我这里进行了一下更新&#xff01; 链接&#xff1a;https://pan.baidu.com/s/1bB-WS_zmHy_-…

sql2012下载,安装,

一、准备&#xff08;下载&#xff09;需要的文件 文件名&#xff1a;sql2012(x86).zip和sql2012(x64).iso&#xff0c;下面教程以前者为例&#xff0c;后者一样 百度云链接&#xff1a;度盘 单击出错&#xff1f;可以右击在新的标签页中打开 提取密码&#xff1a;734j 最新版&…

SQLServer2008密钥

2008-8-15最新修订版和Visual Studio 2008一样&#xff0c;从官网下载SQL Server 2008的180天试用版其实与正式版内容是基本相同的&#xff0c;唯一的区别就在于安装配置文件中所包含的key。各种版本的SQL Server在进行到这一步之前都是完全一样的&#xff1a; 如果你没有序列号…

SqlServer2012下载和安装(资源自带密钥)

1.如果你安装的是Win10&#xff0c;可以直接双击下载得到的镜像文件&#xff0c;其他版本的windows系统&#xff0c;可以选择使用解压软件&#xff0c;解压该文件。 2.双击安装包目录下的“setup”文件&#xff0c;如图2红色框圈住的文件&#xff0c;运行主安装程序。 图3 …

python 实现微信机器人自动回复

1.python 实现微信机器人自动回复 # 源代码如下&#xff1a; import jsonimport itchat import requests import re# 机器人接口调用 def getHtmlText(url):try:r requests.get(url, timeout30)r.raise_for_status()r.encoding r.apparent_encodingreturn r.textexcept:retu…

Python-快速实现微信公众号自动回复(聊天机器人)

原理&#xff1a;通过微信公众号提供的开发者模式&#xff0c;利用Python搭建环境&#xff0c;实现自动回复&#xff0c;回复内容通过调用图灵机器人的API 配置&#xff1a;服务器&#xff08;这里是阿里云主机&#xff0c;Ubuntu&#xff09;&#xff0c;公众号&#xff0c;图…

微信的自动回复接入聊天机器人

今天偶尔发现了一个有趣的python库--itchat&#xff0c;可以实现微信的自动回复、防撤回&#xff0c;结合图灵机器人还能实现聊天机器人的作用 简单介绍一下配置与工具 win7旗舰版 pycharm python2.7(我在用python3版本运行时png.py会发生报错&#xff0c;不知道大家那怎么样…

Python制作微信自动回复机器人

文章目录 前言一、创建机器人二、完成代码 前言 自从微信网页版登录禁止后&#xff0c;原来的自动登录回复就失效了。接下来使用一个库PyWeChatSpy&#xff0c;需要pip下载 一、创建机器人 进入图灵机器人官网http://www.tuling123.com/&#xff0c; 戳进帮助中心。 注册用户 …

PC端微信 机器人智能自动回复实现 全攻略

PC端微信 机器人智能自动回复实现 全攻略 程序介绍WechatPCAPI百度UNIT实现代码结语 程序介绍 2021/06/05 更新 这个程序最大的优点就是免费&#xff0c;而且效果很好&#xff0c;环境要求不高。 该自动智能回复机器人基于python编写&#xff0c;笔者使用的版本是python3.7。…

微信小程序自动回复机器人(模拟云信案例)

1.场景&#xff1a; 输入关键词&#xff0c;对内容库进行检索&#xff0c;得到搜索结果&#xff0c;反馈给用户。其实也不算是机器人&#xff0c;也类似于搜索的样子&#xff0c;只不过以聊天界面的形式展现出来&#xff0c;当然了&#xff0c;在完成这个流程的过程中&#xf…

微信话术自动回复机器人软件

购买地址 &#xff1a; https://item.taobao.com/item.htm?ftt&id644635811302自动通过好友验证以及计数 1.设置通过好友验证时长&#xff0c;一般为2-3秒 2.设置启用新好友信息之后&#xff0c;通过的新好友自动发送保存好的文字/表情 3.好友计数指的是已经添加通过验证…

微信机器人自动回复(python实现)

微信机器人自动回复&#xff08;python实现&#xff09; 准备工作&#xff1a; 自动回复利用了图灵机器人的智能问答&#xff0c;需要在图灵网创建一个机器人&#xff0c;这时会得到一个apike 1、安装python以及python编译器 2、复制粘贴代码 import itchat import requests…

用Python做个微信自动回复机器人

微信已经成为我们生活不可或缺的一部分&#xff0c;每天有380亿条消息从微信上发出&#xff0c;其中6亿条是语音消息&#xff0c;有350万个活跃的公众账号&#xff0c;并存在着8亿活跃粉丝。微信是一个庞大的生态群体。 今天我们来玩转一下微信&#xff0c;微信有关的第三方框…

微信自动回复的智能聊天机器人怎么做?

wx微信简单话术群消息同步机器人,简单明了效率高。 工具 先安装微信特定版本3.0.0.57,后打开WeiChatTool.exe运行使用/操作 操作主界面如下: 自动通过好友验证以及计数 1.设置通过好友验证时长,一般为2-3秒 2.设置启用新好友信息之后,通过的新好友自动发送保存好的文字/…

如何用 30 行代码实现微信自动回复机器人?

作者 | Ahab 责编 | 胡巍巍 写在前面 很多朋友对itchat非常感兴趣&#xff0c;近日又学到了itchat另一种有趣的玩法——微信自动回复机器人。 程序很简单仅仅三十行代码左右&#xff0c;实现了机器人自动与你的微信好友聊天&#xff0c;下面是我的机器人小笼包跟自己微信好友聊…

手把手教你实现一个微信自动回复机器人

RebateBot 返利机器人 微信聊天机器人代码 项目地址 项目描述 关键词: 返利 微信 阿里妈妈 机器人 跨平台 返利机器人&#xff0c;基于微信建立机器人通道与用户通过聊天快速生成返利链接 利用闲置微信和极小的电脑性能开启24小时无人轮值返利机器人 购物只需要发送链接给…