概述
剪枝:
1.从后向前枚举
2.迭代加深
然后就0msAC了
//By SiriusRen
#include <cstdio>
using namespace std;
int n,T,s[105];
bool dfs(int t){
if(s[t]==n)return 1;
if(t>=T)return 0;
for(int i=t;i>=1;i--){
s[t+1]=s[i]+s[t];
if(dfs(t+1))return 1;
}
}
int main(){
s[1]=1;
while(scanf("%d",&n)&&n)
for(T=1;;T++)
if(dfs(1)){
for(int j=1;j<=T;j++)
printf("%d ",s[j]);
puts("");break;
}
}
转载于:https://www.cnblogs.com/SiriusRen/p/6532307.html
最后
以上就是柔弱小丸子为你收集整理的POJ 2248 搜索的全部内容,希望文章能够帮你解决POJ 2248 搜索所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复