uva1374 快速幂计算 迭代加深优先逼近
来源:互联网 发布:装饰质量员 知乎 编辑:程序博客网 时间:2024/05/16 10:08
- 迭代加深优先递归时先逼近可能值,例如先加法后减法。
- 个数少时剪枝效果不好可以打表。
- 一层一层的dfs
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=41552
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxans = 13; // we got it by experimentingint n, a[maxans+1];bool dfs(int d, int maxd) { if(a[d] == n) return true; if(d == maxd) return false; int maxv = a[0]; for(int i = 1; i <= d; i++) maxv = max(maxv, a[i]); if((maxv << (maxd-d)) < n) return false;//maxv*(2^(maxd-d)) < n for(int i = d; i >= 0; i--) { a[d+1] = a[d] + a[i];//先+后-提高效率 if(dfs(d+1, maxd)) 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; for(int maxd = 1; maxd < maxans; maxd++) { if(dfs(0, maxd)) return maxd; } return maxans;}int main() { while(scanf("%d", &n) == 1 && n) { printf("%d\n", solve(n)); } return 0;}
0 0
- uva1374 快速幂计算 迭代加深优先逼近
- UVA1374(Power Calculus|快速幂计算)=》迭代加深搜
- uva1374快速幂计算
- 例题7-13 快速幂计算 UVa1374
- UVA UVA - 1374 Power Calculus 快速幂计算(迭代加深搜索)
- UVa1374(快速幂)
- 紫书 例题 7-13 快速幂计算 UVA1374 IDA*搜索
- 深度优先,广度优先和迭代加深搜索算法
- UVa1374快速幂运算迭代深搜法
- 深度优先搜索 迭代加深搜索 hdu 1560
- 【牛顿迭代逼近】求根号2的快速方法
- 奶牛求幂 迭代加深搜索
- 【sgu510】迭代加深
- 迭代加深+剪枝
- 迭代加深
- 迭代加深搜索
- 迭代加深
- 迭代加深搜索
- dlopen dlsym dlclose dlerror
- 运算符笔记
- HDU2520——我是菜鸟,我怕谁
- 利用 Myeclispe创建Maven项目
- 【华为 OJ 】 求最小公倍数
- uva1374 快速幂计算 迭代加深优先逼近
- Mysql开启关闭
- java代码实现汉字转汉语拼音
- 编程,一项必须拥有兴趣才能做的工作
- codeforces 703B Mishka and trip
- 欢迎来到我的博客!
- IOS推送以及个推中的需要注意的
- JAVA API实现ZIP压缩与解压
- POJ 1127Jack Straws (计算几何 + 线段相交)