poj 3134 Power Calculus(迭代加深dfs)
来源:互联网 发布:omg淘宝权在哪里直播 编辑:程序博客网 时间:2024/05/07 21:57
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<queue>using namespace std;const int MAXN=50+5;int da[]={1,2,4,8,16,32,64,128,256,512,1024};int p[MAXN],cnt,D,n;int MAX(const int a,const int b){return a>b?a:b;}bool dfs(int d,int sum){if(d==D){if(sum==n)return 1;return 0;}int i,j;for(i=cnt-1;i>=0;i--){int max=0;for(j=0;j<cnt;j++)max=MAX(max,p[j]);if((max+sum)<<(D-d-1)<n)return 0;//剪枝,减去一定达不到n的搜索p[cnt++]=sum+p[i];//加法情况if(dfs(d+1,sum+p[i]))return 1;cnt--;if(sum-p[i]>0){p[cnt++]=sum-p[i];//减法情况if(dfs(d+1,sum-p[i]))return 1;cnt--;}}return 0;}int solve(int x){int i;for(i=0;i<=10;i++)if(da[i]>=x){D=i;break;}while(1){memset(p,0,sizeof(p));p[0]=1;cnt=1;if(dfs(0,1))break;D++;}return D;}int main(){while(~scanf("%d",&n),n){printf("%d\n",solve(n));}return 0;}
0 0
- poj 3134 Power Calculus(迭代加深dfs)
- poj 3134 Power Calculus(迭代加深dfs)
- POJ-3134-Power Calculus(迭代加深DFS)
- poj3134 Power Calculus---迭代加深dfs
- POJ 3134 - Power Calculus 迭代加深搜索(DFSID)
- LA 3621 / POJ 3134 Power Calculus (迭代加深搜索)
- POJ 3134 Power Calculus 迭代加深搜索
- 1374 - Power Calculus (迭代加深+剪枝)
- UVA - 1374 - Power Calculus(迭代加深)
- POJ 3134 - Power Calculus
- Power Calculus(POJ 3134)
- UVA UVA - 1374 Power Calculus 快速幂计算(迭代加深搜索)
- UVA1374(Power Calculus|快速幂计算)=》迭代加深搜
- POJ 3134 Power Calculus ID-DFS +剪枝
- poj 3134 Power Calculus(IDA*)
- poj 3134 Power Calculus (IDA*)
- POJ 3134Power Calculus(IDA*)
- POJ 3134 Power Calculus (IDA*)
- postgres中遇到的两个问题解决
- 7月2日总结,mysql 之select
- 使用JSON时报java.lang.NoClassDefFoundError错误
- stringstream 的用法
- 【Cocos2d-x】 3.0渲染 分析之二
- poj 3134 Power Calculus(迭代加深dfs)
- vba判断数据类型函数
- 南邮acm 1008 第N天 java解法
- [备战NOI同步赛]适合ACM-ICPC的并查集模板
- Linux中环境变量文件及配置
- Android_深入解析AsyncTask
- CFileFind类的使用总结
- UVA 624 CD
- bash脚本:怎样一行行地读文件(最好和最坏的方法)