递增数列(迭代加深搜索)
迭代加深搜索就是限制递归的层数,然后一层层地扩大限制的层数
我们记录当前深度,以及当前应该搜出几个数
设计剪枝:
1.当当前深度乘上2^r(r是还没有选的数)比m还小 那肯定是不行的 因为最大的扩展方式就是选两个最大的数
2.这一层比上一层数小
#include<bits/stdc++.h>
using namespace std;
int m,step,s[1000];
bool dfs(int depth)
{if(s[depth-1]==m){cout<<step<<endl;for(int i=1;i<=step;i++) cout<<s[i]<<" ";exit(0);}if(depth>step) return false;for(register int i=depth-1;i>=1;--i){for(register int j=depth-1;j>=i;--j){s[depth]=s[i]+s[j];if((s[depth]<<(step-depth))<m) break;if(s[depth]<s[depth-1]) break;dfs(depth+1);}} return false;
}
int main()
{ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);cin>>m;s[1]=1;step=1;while(!dfs(2)) ++step;
}
转载于:https://www.cnblogs.com/Patrickpwq/articles/9889086.html
递增数列(迭代加深搜索)相关推荐
- 迭代加深搜索与埃及分数求解
迭代加深搜索,实质上是限定下界的深度优先搜索.即首先允许深度优先搜索K层,若没有发现可行解,再将K+1后 重复以上步骤搜索,直到搜索到可行解. 在迭代加深搜索的算法中,连续的深度优先搜索被引入,每一个 ...
- C++迭代加深搜索及其例题讲解—————Addition Chains
前言: 学习算法时,一个关键的问题是什么时候来使用它.在一些搜索问题中,使用普通的DFS可能会让你把时间浪费在深度非常大而且答案不是最优的搜索过程上,甚至有的时候DFS搜索的深度是无穷的,而BFS虽说 ...
- hdu 1560 DNA sequence(迭代加深搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1560 题意:从n个串中找出一个最短的公共串,,该公共串对于n个字符串不要求连续,即只要保持相对顺序就好 ...
- 紫书搜索 习题7-8 UVA - 12107 Digit Puzzle IDA*迭代加深搜索
题目链接: https://vjudge.net/problem/UVA-12107 题意: 给出一个数字谜,要求修改尽量少的数,使修改后的数字谜只有唯一解.空格和数字可以随意替换,但不能增删,数字谜 ...
- UVA - 11214Guarding the Chessboard守卫棋盘(迭代加深搜索)
题意:输入一个n*m棋盘(0<n,m<10),某些格子有标记.用最少的皇后守卫所有带标记的格子.皇后规则是所在坐标的直线和斜线都可以被守卫,长度不限. 分析:因为不知道深度,所以用迭代加深 ...
- P2324 [SCOI2005]骑士精神(迭代加深搜索,dfs)
传送门 文章目录 解析 解析 很显然,让马走的话状态记录和转移都会比较复杂 所以转化成让空位跳会更好做一点 但这不是重点 初看本题,其实第一感觉是bfs 但是状态数理论上最差可以达到815,(当然基本 ...
- 迭代加深搜索 C++解题报告 :[SCOI2005]骑士精神
题目 此题根据题目可知是迭代加深搜索. 首先应该枚举空格的位置,让空格像一个马一样移动. 但迭代加深搜索之后时间复杂度还是非常的高,根本过不了题. 感觉也想不出什么减枝,于是便要用到了乐观估计函数(O ...
- 启发式搜索 迭代加深搜索 搜索对象的压缩存储
常见的几种搜索算法 常见的几种搜索算法_唐宋缘明卿_cris的博客-CSDN博客_搜索算法有哪些 搜索 -- 启发式搜索 搜索 -- 启发式搜索_Alex_McAvoy的博客-CSDN博客_启发式搜索 ...
- 算法复习——迭代加深搜索(骑士精神bzoj1085)
题目: Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑 士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标 ...
最新文章
- ORB-SLAM2地图存储加载系统
- 电脑达人教你怎么解决Win7系统盘渐渐变小的问题
- fiery服务器系统安装,Fiery_SC5500_服务器安装步骤.pdf
- Java特性-Collection和Map
- php 中 fastcgi
- 单片机预备知识(电平、进制转换、字节、数据类型)
- vue-router之 beforeRouteEnter
- 标准C程序设计七---77
- GPRS底层API(转)
- Zipkin 基于MQ存 储链路信息至 MySQL
- REG Delete用法
- Network-based Fraud Detection for Social Security Fraud
- 阮一峰ES6旅程:入门布局
- 苹果经典提示音_微信提示音,可以更换成你喜欢的声音了!
- 黑客进行攻击中最重要的环节“信息收集”
- java 判断汉字_Java 完美判断中文字符的方法
- springmvc中ajax请求406错误响应码
- clickhouse 报错 “Unmatched parentheses: (“ 或者报错 “Expected one of: CODEC, NULL, ALIAS, TTL, ClosingR
- 企业资源计划-MPS计算(附详细解题步骤及计算过程)
- 点击按钮显示文字,再次点击隐藏文字