hdu 1258 Sum It Up

来源:互联网 发布:js得到指定时间戳 编辑:程序博客网 时间:2024/04/30 02:30

链接:点击打开链接

DFS

#include<iostream>using namespace std;int b[20],a[20];int m,t,n,s,j;void dfs(int x){  int i,last;  if(s>t)      return;  if(s==t)  {    for(i=0;i<j;i++)        if(i==0)            printf("%d",b[i]);        else            printf("+%d",b[i]);        printf("\n");        m++;  }      last=-1;    for(i=x;i<n;i++)    {      if(a[i]!=last)      {        s+=a[i];        b[j++]=a[i];        last=a[i];        dfs(i+1);        s-=a[i];        j--;      }    }}int main(){  int i;  while(~scanf("%d %d",&t,&n))  {    if(n==0)        break;    for(i=0;i<n;i++)        scanf("%d",&a[i]);    m=0;    s=0;j=0;    printf("Sums of %d:\n",t);    dfs(0);    if(m==0)        printf("NONE\n");  }  return 0;}


原创粉丝点击