码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 1258 Sum It Up(dfs)

时间:2014-07-23 21:04:53      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:hdu 1258   sizeof   algorithm   amp   

# include <stdio.h>
# include <algorithm>
using namespace std;
int flag,t,n,a[10010],cot[10010],vis[100010];
void dfs(int x,int sum,int count)
{
	int i;
	if(sum>t)
		return ;
	else if(sum==t)
	{
		
		for(i=0;i<count;i++)
		{
			if(i!=count-1)
				printf("%d+",cot[i]);
			else
				printf("%d\n",cot[i]);
		}
		flag=1;
		return ;//每个return 都是返回到调用当前dfs的那个dfs的语句的末尾//上个dfs
	}
	int tmp=-1;
	for(i=x;i<n;i++)
	{
		if(a[i]!=tmp)
		{
			cot[count++]=a[i];
		    tmp=a[i];//保留当前的数,能避免重复
		    dfs(i+1,sum+a[i],count);
			count--;
		}
	}
}
int main()
{
	while(~scanf("%d%d",&t,&n),t+n)
	{
		memset(a,0,sizeof(a));
		for(int i=0;i<n;i++)
		{
			scanf("%d",&a[i]);
		}
		flag=0;
		memset(vis,0,sizeof(vis));
		memset(cot,0,sizeof(cot));
		printf("Sums of %d:\n",t);
		dfs(0,0,0);
		if(!flag)
		printf("NONE\n");
	}
	return 0;
}

hdu 1258 Sum It Up(dfs)

标签:hdu 1258   sizeof   algorithm   amp   

原文地址:http://blog.csdn.net/lp_opai/article/details/38068837

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!