poj 2248 Addition Chains dfs
来源:互联网 发布:vim python 语法高亮 编辑:程序博客网 时间:2024/05/16 08:41
要求输出以n为结尾的一个数列,要求是数列的每一个数分解成的两个数都在数列中,且使得数列最短
直接dfs过掉了
View Code
#include<stdio.h>
#include<string.h>
int n,dep,vis[110],ans[110];
int dfs(int p,int sum)
{
int i;
if(p==dep)
{
if(sum==n) return 1;
return 0;
}
for(i=0;i<=p;i++)
{
sum+=ans[i];
if(!vis[sum]&&sum<=n)
{
ans[p+1]=sum;
vis[sum]=1;
if(dfs(p+1,sum)) return 1;
vis[sum]=0;
}
sum-=ans[i];
}
return 0;
}
int main()
{
int i;
while(scanf("%d",&n),n)
{
if(n==1)
{
printf("1\n");continue;
}
ans[0]=1;
for(i=1;;i++)
{
memset(vis,0,sizeof(vis));
dep=i;
if(dfs(0,1)) break;
}
for(i=0;i<=dep;i++)
printf("%d ",ans[i]);
printf("\n");
}
return 0;
}
- poj 2248 Addition Chains dfs
- POJ 2248 Addition Chains(DFS)
- (poj 2248 Addition Chains)<DFS+剪枝>
- poj 2248 Addition Chains
- POJ 2248 Addition Chains
- poj 2248 Addition Chains
- POJ 2248 Addition Chains 笔记
- poj 2248--Addition Chains (uva 529--Addition Chains)
- poj2248 Addition Chains--------dfs
- zoj 1937 || poj 2248 Addition Chains
- POJ 2248 & ZOJ 1937 Addition Chains
- 【ZOJ 1937】 【POJ 2248】 Addition Chains
- ZOJ 1937 Addition Chains(DFS)
- poj 2248 Addition Chains(迭代加深搜索)
- UVA529- Addition Chains(迭代+DFS)
- UVA529 Addition Chains (迭代+DFS)
- UVa 529 POJ 2248 - Addition Chains ,迭代加深搜索+减枝
- UVA - 529 Addition Chains(迭代+dfs)
- poj 3905 2-sat
- hdu 4115 2-sat
- hdu 1075 字典树
- 从 hdu 3449 看一类最简单的依赖背包
- poj 1787 多重背包记录路径
- poj 2248 Addition Chains dfs
- 常用Shell命令之一
- zstu 1052 水题。。模拟
- poj 1962 带权并查集
- poj 2513 很多RE,很多WA
- AC小结
- hdu 1251 字典树水题(还是没hold住,又刷题了,哎~)
- 最小生成树 终极版本
- hdu 1879 简单最小生成树