题目大意:略

题目里所有的运算都是幂运算,所以转化成指数的加减

由于搜索层数不会超过$2*log$层,所以用一个栈存储哪些数已经被组合出来了,不必暴力枚举哪些数已经被搜出来了

然后跑$iddfs$就行了

可以加一个剪枝,设你选择的最大迭代深度为K,现在如果当前组合出的数$x$,满足$x*2^{K-dep}<n$,说明$n$一定无法被$x$组合出来(即自己不断加自己),$x$对于答案是一定无意义的,就跳出

 #include <queue>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define NN 2010
#define ll long long
#define uint unsigned int
#define ull unsigned long long
#define inf 0x3f3f3f3f
#define idx(X,Y) ((X)*5+(Y))
using namespace std; const int maxn=;
int vis[NN],use[NN],bin[],a[NN];
int n;
int stk[NN],num;
int dfs(int dep,int s,int ma)
{
if(s==n) return ;
if(dep>=ma) return ;
int ans;
if(s*(<<ma-dep)<n) return ;
for(int i=;i<=num;i++)
{
int x=stk[i];
if(use[s+x]) continue;
use[s+x]=,stk[++num]=s+x;
ans=dfs(dep+,s+x,ma);
use[s+x]=,stk[num--]=;
if(ans) return ;
if(s-x<||use[s-x]) continue;
use[s-x]=,stk[++num]=s-x;
ans=dfs(dep+,s-x,ma);
use[s-x]=,stk[num--]=;
if(ans) return ;
}
return ;
} int main()
{
//freopen("t2.in","r",stdin);
bin[]=;
for(int i=;i<=;i++)
bin[i]=bin[i-]<<;
for(int s=;s<=maxn;s++)
a[s]=s;
while(scanf("%d",&n)&&n!=)
{
if(n==) {printf("0\n");continue;}
memset(use,,sizeof(use));
int ans;use[]=;
num=,stk[++num]=;
for(int k=;k<=;k++){
ans=dfs(,,k);
if(ans){ans=k;break;}
}printf("%d\n",ans);
}
return ;
}

最新文章

  1. jmeter(五)Sample之JDBC Request
  2. 【转载】我也说 IEnumerable,ICollection,IList,List之间的区别
  3. jQuery Ztree基本用法
  4. IOS动态判断UITextField是否输入为手机号
  5. 如何处理Tomcat日志catalina.out日志文件过大的问题
  6. Appium服务器端从启动到case完成的活动分析
  7. ./configure 时候报错c++ 编译器不能执行
  8. BeeswaxException 以及其他问题
  9. mysql时间函数,总是记不住,总是查。
  10. vue2.x利用脚手架快速构建项目并引入bootstrap、jquery
  11. Spring boot集成swagger2
  12. Matting任务里的Gradient与Connectivity指标
  13. CF 2B The least round way DP+Math
  14. 洛谷 P1002 过河卒 【棋盘dp】
  15. cumtoj 一起来选课
  16. echo * 打印当前目录列表
  17. Oracle.练习题
  18. ggplot ggplot2 画图
  19. OpenGL核心技术之帧缓冲
  20. Nginx+Tomcat简单集群

热门文章

  1. Java基础——Servlet
  2. 路飞学城Python-Day33
  3. Pyhton学习——Day47
  4. BZOJ 4990 [USACO17FEB] Why Did the Cow Cross the Road II P (树状数组优化DP)
  5. RabbitMQ学习总结(2)——安装、配置与监控
  6. UNIX基础【UNIX入门经典】
  7. ZOJ 3329
  8. 接口測试-HAR
  9. CentOS7安装第三方yum源EPEL
  10. H.264标准(一)mp4封装格式详解