Pro

QwQ

Sol

挺好打的一个搜索题,不过剪枝可能比较难想。

不断地用deep来当做答案,深搜一遍,看能否求出想要的答案,如果可以就不用deep++,否则一直做下去。

Code

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;int n , deep = -1 , flag , stack[1005] , top;void dfs(int dep , int aim , int use , int cnt) {if(use == aim) {flag = 1;return ;}if(top>dep||top<=0||use<<(dep-cnt)<n)return ;for(int i=1; i<=top; i++) {stack[++top] = use+stack[i];dfs(dep , aim , use+stack[i] , cnt+1);top--;stack[++top] = use-stack[i];dfs(dep , aim , use-stack[i] , cnt+1);top--;if(flag)return ;}
}void sol(int x) {deep = -1;while(1) {flag = 0;deep++;stack[1] = 1;top = 1;dfs(deep , x , 1 , 0);if(flag) {printf("%d\n",deep);break;}}
}int main() {while(1) {scanf("%d",&n);if(!n)break;sol(n);}return 0;
}

[UVA1374]Power Calculus【迭代加深】相关推荐

  1. UVa1374 Power Calculus(IDDFS)

    思路:使用IDDFS算法,在递归时,使用剪枝,根据当前的最大值以及当前递归深度, 用当前最大值乘以(1<<最大深度-当前深度),看是否小于要求的正整数.具体代码参考: https://gi ...

  2. hdu 1560 DNA sequence(迭代加深搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1560 题意:从n个串中找出一个最短的公共串,,该公共串对于n个字符串不要求连续,即只要保持相对顺序就好 ...

  3. 紫书搜索 习题7-8 UVA - 12107 Digit Puzzle IDA*迭代加深搜索

    题目链接: https://vjudge.net/problem/UVA-12107 题意: 给出一个数字谜,要求修改尽量少的数,使修改后的数字谜只有唯一解.空格和数字可以随意替换,但不能增删,数字谜 ...

  4. Gym - 102460A Rush Hour Puzzle(dfs迭代加深)

    题目链接:点击查看 题目大意:给出一个 6 * 6 的矩阵,表示华容道的游戏界面,现在需要红色汽车(标号为 1 )从第三行最右端到达出口的最短时间,如果无解或者步数超过 10 输出 -1 题目分析:因 ...

  5. POJ - 2248 Addition Chains(dfs+迭代加深)

    题目链接:点击查看 题目大意:我们规定加法链有如下特点: 现在给出一个数n,求该数的最短加法链 题目分析:这个题首先我们可以枚举所有可能性,并且进行适当的剪枝: 当前长度大于等于最优解时回溯 当前值等 ...

  6. UVA - 11214Guarding the Chessboard守卫棋盘(迭代加深搜索)

    题意:输入一个n*m棋盘(0<n,m<10),某些格子有标记.用最少的皇后守卫所有带标记的格子.皇后规则是所在坐标的直线和斜线都可以被守卫,长度不限. 分析:因为不知道深度,所以用迭代加深 ...

  7. 迭代加深搜索与埃及分数求解

    迭代加深搜索,实质上是限定下界的深度优先搜索.即首先允许深度优先搜索K层,若没有发现可行解,再将K+1后 重复以上步骤搜索,直到搜索到可行解. 在迭代加深搜索的算法中,连续的深度优先搜索被引入,每一个 ...

  8. P2324 [SCOI2005]骑士精神(迭代加深搜索,dfs)

    传送门 文章目录 解析 解析 很显然,让马走的话状态记录和转移都会比较复杂 所以转化成让空位跳会更好做一点 但这不是重点 初看本题,其实第一感觉是bfs 但是状态数理论上最差可以达到815,(当然基本 ...

  9. 迭代加深搜索 C++解题报告 :[SCOI2005]骑士精神

    题目 此题根据题目可知是迭代加深搜索. 首先应该枚举空格的位置,让空格像一个马一样移动. 但迭代加深搜索之后时间复杂度还是非常的高,根本过不了题. 感觉也想不出什么减枝,于是便要用到了乐观估计函数(O ...

最新文章

  1. [Spring MVC] - JSP + Freemarker视图解释器整合(转)
  2. anaconda创建菜单失败
  3. 1、时间、FHS 学习笔记
  4. nRF51822之BootLoader
  5. android aidl调用进程间服务的方法
  6. oem监控mysql_OEM12c 安装配置MySQL Plug-in用来监控MySQL
  7. MVC应用程序与单选列表
  8. java WebService 异常
  9. c++求n的几次方_2.七年级数学:怎么求mn+mn的值?完全平方公式,用配方法
  10. 共同努力做好NBear!
  11. excel的VBA编程环境VBE更换错误字体后设置闪退
  12. Android木马病毒com.schemedroid的分析报告
  13. 推荐系统常用推荐系统算法(协同过滤算法等)-人工智能AI
  14. Android 外网连接解决方案
  15. 携程旅行app数据采集
  16. 100句激励自己的英文名言
  17. Unity 托管内存(Managed Memory)
  18. 好书 python_[好书首发]Python-Visual Quickstart Guide(第三版,最新版)
  19. 数论 II(组合数学)
  20. Oracle物化视图的使用总结

热门文章

  1. Eclipse+Maven+Spring+CXF 构建webservice 服务
  2. PHP array_intersect_assoc()
  3. Android 数据库 在使用 update更新的时候,总是无法更新,还没有异常抛出!
  4. error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
  5. 超准!生活中48条让人匪夷所思的诡秘心理...
  6. Java开发人员可以从Spring框架中学到编程技巧
  7. Chapter 2 向量空间
  8. 扫描识别工具Dynamic Web TWAIN使用教程:单独添加/删除对象
  9. 学习日记0904并发编程socketserver模块 进程理论
  10. 2.学习管理系统项目学习一