当前位置: 首页 > news >正文

20251103折半搜索总结

引子

折半搜索(又称meet-in-the-middle)是一种优化搜索算法的方法。其说白了就是将搜索过程分成两个部分:先分别对两部分进行独立搜索,得到两个结果序列,最后通过合并这两个序列得到答案。

由于搜索算法的时间复杂度通常为指数级,当n较大时容易导致超时。采用折半搜索后,时间复杂度可由O(2n)O(2^n)O(2n)降到O(2n2+1)O(2^{\frac{n}{2}+1})O(22n+1)

C P4799 世界冰球锦标赛

折半搜索模板为何放在放在第三题?

这题就先折半搜索,接着合并时,我们可以先将一部分进行排列使其有序,然后遍历另一部分,每次进行二分搜索查找可行的答案,最后叠加可行方案数。

#include<bits/stdc++.h>usingnamespacestd;intn;longlongm,a[45];vector<longlong>a1,a2;voiddfs1(intk,longlongsum){if(sum>m)return;if(k>n/2){a1.push_back(sum);return;}dfs1(k+1,sum+a[k]);dfs1(k+1,sum);}longlongans=0;voiddfs2(intk,longlongsum){if(sum>m)return;if(k>n){a2.push_back(sum);return;}dfs2(k+1,sum+a[k]);dfs2(k+1,sum);}intmain(){cin>>n>>m;for(inti=1;i<=n;i++){cin>>a[i];}dfs1(1,0);dfs2(n/2+1,0);sort(a2.begin(),a2.end());for(autoi:a1){intp=upper_bound(a2.begin(),a2.end(),m-i)-a2.begin();ans+=p;}cout<<ans;return0;}
http://www.gsyq.cn/news/144360.html

相关文章:

  • 2025年度设计能力强的网站建设公司有哪些?国内十大服务商测评与企业适配指南
  • 图解说明FPU参与的单精度转换流程
  • 灾备切换实战测试:确保系统永不停机
  • 12、Windows系统文件分析:回收站、预取文件与计划任务
  • 针对学生机房的proteus8.17下载及安装优化方案指南
  • 库存优化建议生成:数据驱动运营管理
  • 【机器学习】-带你弄懂时间序列
  • 13、Windows系统文件分析:Jump Lists、休眠文件与应用文件解析
  • 待办事项智能提醒:确保任务按时完成
  • 点击劫持防御:X-Frame-Options设置
  • 17.过保护读内存(通过内核(驱动)把应用数据复制到内核内存空间,然后返回给我们的3环程序实现)-Windows驱动
  • Realtek高清晰音频驱动配置详解:从零开始操作
  • Altium Designer四层板PCB绘制堆叠设计完整示例
  • 留存率提升策略:让用户爱上你的产品
  • 机器学习——Random Forest随机森林:b站up主 五分钟机器学习+time星君
  • 禁用64位系统32位文件重定向(C++代码)
  • 35、WPF 自定义控件与绘图指南
  • 3.端口隔离——隔离模式对比
  • 被罚2000万后,某电商大数据平台GDPR合规整改3个月复盘
  • ISO27001认证准备:信息安全管理体系建立
  • MOSFET半桥驱动电路设计实战案例
  • HBuilderX安装教程详解:新手快速上手操作指南
  • 13、深入解析 Active Directory 管理:概念、操作与最佳实践
  • LTspice运放电路AC分析全面讲解:频率响应获取
  • 产品改进建议收集:来自一线的声音
  • 6、Windows NTFS与共享文件夹权限管理全解析
  • 批量拉取Git项目sh脚本
  • 7、管理用户账户:Windows 2000 中的用户配置文件、主文件夹与组策略
  • 实验06
  • 8、高效管理打印机资源:Windows 2000 服务器打印服务指南