UVALive - 3621 Power Calculus
2014-01-01 01:16
330 查看
题意:给出x和正整数n,问最少需要几次乘除法可以得到x^n
思路:迭代搜索+减枝
思路:迭代搜索+减枝
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAXN = 1010; const int INF = 10000007; int arr[MAXN],num; int dfs(int n,int step){ if (num > step) return 0; if (arr[num] == n) return 1; if (arr[num] << (step-num) < n) return false; for (int i = 0; i <= num; i++){ num++; arr[num] = arr[num-1] + arr[i]; if (arr[num] <= 10000 && dfs(n,step)) return true; arr[num] = arr[num-1] - arr[i]; if (arr[num] > 0 && dfs(n,step)) return 1; num--; } return 0; } int main(){ int n; while (scanf("%d",&n) != EOF && n){ int i; for (i = 0; ; i++){ arr[num = 0] = 1; if (dfs(n,i)) break; } printf("%d\n",i); } return 0; }
相关文章推荐
- UVALive 3621 Power Calculus n次幂最少需要几次乘除得到 搜索
- POJ 1459 Power Network / HIT 1228 Power Network / UVAlive 2760 Power Network / ZOJ 1734 Power Network / FZU 1161 (网络流,最大流)
- UVa 1374 - Power Calculus ( IDA* - 迭代加深搜索 )
- UVA 1374 Power Calculus
- UVa 1374 Power Calculus (IDA*或都打表)
- UVa 1374 Power Calculus
- Uva-1347 Power Calculus
- LA 3621 / POJ 3134 Power Calculus (迭代加深搜索)
- UVA 1374 ——Power Calculus(IDA*搜索)
- UVA 1374 - Power Calculus(迭代深搜)
- poj 3134 && LA 3621 Power Calculus (迭代加深深度优先搜索)
- UVA - 1374 Power Calculus
- UVA 1374 Power Calculus(迭代深搜)
- UVA1374PowerCalculus
- UVA - 1374 Power Calculus 迭代深搜
- UVa 1374:Power Calculus(IDA*)
- UVA - 1374 Power Calculus
- UVA 1374(p211)----Power Calculus
- UVA - 1374 Power Calculus :IDA* 各种优化
- UVa 1374 Power Calculus (快速幂计算)