IDDFS--UVA - 1374 Power Calculus
2015-11-01 16:31
411 查看
#include <cstdio> #include <algorithm> using namespace std; const int maxn = 15; int a[maxn], n; bool dfs(int maxc, int d, int maxd) { if((maxc<<(maxd-d)) < n) return false; if(maxc == n) return true; a[d] = maxc; for(int i=0; i<=d; i++) { if(dfs(a[d]+a[i], d+1, maxd)) return true; if(dfs(a[d]-a[i], d+1, maxd)) return true; } return false; } int main() { int maxd; while(scanf("%d", &n), n) { for(maxd = 0; ; maxd++) if(dfs(1, 0, maxd)) break; printf("%d\n",maxd); } return 0; }
相关文章推荐
- u-boot启动内核学习总结
- extjs grid 分页
- 杭电2579Dating with girls(2)
- 项目三——稀疏矩阵的三元组表示的实现及应用
- hdu 1159 动态规划初步
- javascript做导航条
- frame、bounds和center
- 将博客搬至CSDN
- request.getRequestDispatcher()的两个方法forward()/include()!!!
- GCDAsyncSocket的使用
- Java 自定义注解例子
- 非常可乐(bfs)
- LeetCode----Partition List
- java学习:Graphics绘制基本图形对象
- 图的最小生成树prim算法详解
- Html+Css_div中的垂直居中布局
- 【LEETCODE】101-Symmetric Tree
- java基础测试(2)
- 葛爷带你上iOS王者——02
- How To: Multipath Linux x86-64 Release 6.4