uva 1374 - Power Calculus(迭代深搜)
来源:互联网 发布:舞美设计用什么软件 编辑:程序博客网 时间:2024/06/11 02:30
题目链接:uva 1374 - Power Calculus
题目大意:给出n,问说至少计算几步得到x^n。
解题思路:迭代深搜,枚举步数,然后深搜判断是否可行。需要优化,当当前数s按照最大方案执行后仍然小于n,则说明不可行。
#include <stdio.h>#include <string.h>#include <stdlib.h>const int N = 3005;int aid, tmp, v[N], rec[N], pTow[50], ans[N];bool dfs(int d, int s) {if (d == tmp && s == aid) return true;if (d >= tmp || s > 1500) return false;if (s * pTow[tmp - d] < aid) return false;rec[d] = s; v[s] = 1;for (int i = 0; i <= d; i++) {int u = rec[i] + s;if (v[u] == 0)if (dfs(d + 1, u)) return true;u = abs(s - rec[i]);if (v[u] == 0)if (dfs(d + 1, u)) return true;}v[s] = 0;return false;}int solve() {tmp = 0;memset(v, 0, sizeof(v));while (true) {if (dfs(0, 1)) break;tmp++;}return tmp;}void init() {pTow[0] = 1;for (int i = 1; i <= 31; i++) pTow[i] = pTow[i - 1] * 2;}int main() {init();while (scanf("%d", &aid) == 1 && aid) {printf("%d\n", solve());}return 0;}
1 0
- UVA 1374 - Power Calculus(迭代深搜)
- uva 1374 - Power Calculus(迭代深搜)
- UVA - 1374 Power Calculus 迭代深搜
- UVa 1374 Power Calculus
- UVA 1374 Power Calculus
- UVA - 1374 Power Calculus
- uva 1374 Power Calculus
- uva 1374 power calculus
- UVA 1374 Power Calculus
- uva 1374 Power Calculus
- UVA 1374 Power Calculus(迭代深搜)
- UVa 1374 - Power Calculus (DFSID)
- IDDFS--UVA - 1374 Power Calculus
- UVA 1374(p211)----Power Calculus
- UVA 1374 Power Calculus(IDA*)
- UVa 1374 - Power Calculus <IDA*算法>
- UVa 1374 - Power Calculus(IDA*)
- UVa 1374:Power Calculus(IDA*)
- 由servlet联想到struts
- TCP、套接字、单线程、控制台程序
- 高频电路布线技巧
- 无根树转换成为有根树
- HelloWorld项目的目录结构
- uva 1374 - Power Calculus(迭代深搜)
- 线性光耦原理与电路设计
- Linux下C语言连接MySQL
- c++ STL之 find和count(权哥)
- java插入排序之直接插入排序
- C++编译遇到参数错误(cannot convert parameter * from 'const char [**]' to 'LPCWSTR')
- NSDate常用函数
- 查找获取百度网盘里的资料(python版)
- Linux下编译C程序