Power Calculus UVA
来源:互联网 发布:数据整合系统sci 编辑:程序博客网 时间:2024/06/01 08:27
#include<cstdio>#include<cstring>using namespace std;int n, a[14]; //注意选择设定的状态bool dfs(int d, int maxd){ if (a[d] == n) return true; if (d == maxd) //若当d达到maxd然而仍然达不到目标状态,则退出并返回错//添上这一语句是因为后续剪枝判断不充分,漏掉一些情况 return false; int maxv = -1; for(int i=0;i<=d;i++) if (maxv < a[i]) { maxv = a[i]; } if ((maxv << (maxd - d)) < n) //剪枝 return false; for (int i = d; i >= 0; i--)//结点排序 { a[d + 1] = a[d] + a[i];//结点排序 if(dfs(d + 1, maxd))//用if迭代返回 return true; a[d + 1] = a[d] - a[i]; if (dfs(d + 1, maxd)) return true; } return false;}int solve(int n){ if (n == 1) //零输入 return 0; a[0] = 1; const int max_ans = 13;// we got it by experimenting for (int maxd = 1; maxd < max_ans; maxd++) if (dfs(0, maxd)) return maxd;//搜索成功必到达maxd,因此返回maxd return max_ans;}int main(){ while (scanf("%d", &n) && n) { printf("%d\n", solve(n)); }}
0 0
- UVa 1374 Power Calculus
- UVA 1374 Power Calculus
- UVA - 1374 Power Calculus
- uva 1374 Power Calculus
- uva 1374 power calculus
- Uva-1347 Power Calculus
- Power Calculus UVA
- Power Calculus UVA
- Power Calculus (UVA
- UVA 1374 Power Calculus
- Power Calculus UVA
- uva 1374 Power Calculus
- UVA 1374 - Power Calculus(迭代深搜)
- uva 1374 - Power Calculus(迭代深搜)
- UVa 1374 - Power Calculus (DFSID)
- UVA - 1374 Power Calculus 迭代深搜
- IDDFS--UVA - 1374 Power Calculus
- UVA 1374(p211)----Power Calculus
- matplotlib的基本用法(二)——设置坐标轴
- 走技术线,还是技术管理线?
- java.net.SocketException四大异常解决方案
- JVM调优
- 介绍 JSON
- Power Calculus UVA
- ThreadPoolExecutor中BlockingQueue的三种实现及排队策略
- 将list遍历出来全部删除的两种方法
- 数据库的4个概念
- 移动web前端开发总结
- Android ButterKnife注解框架使用
- 程序设计实践课程记录7
- HDU3364 Lanterns
- Spring事务传播性与隔离级别