NYOJ 1058(简单DFS,好好理解)

来源:互联网 发布:数据分析软件有哪些 编辑:程序博客网 时间:2024/05/16 09:04

学长专用来坑学弟的题,本来是不需要打印路径的。刚把题出出来就被我AC了,于是就把题目改了,然后我就...

/****author :Skylon **╭︿︿︿╮{/ A  C /}  ( (oo) )   ︶︶︶ **    ****   题**** 2014 年 月 日****/#include <cmath>#include <queue>#include <stack>#include <vector>#include <cstdio>#include <string>#include <cctype>#include <climits>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>using namespace std;int n,k,A[20];stack<int>v;int dfs(int i=0,int sum=0){if (i==n)              return sum==k?1:0;if (dfs(i+1,sum))      return 1;if (dfs(i+1,A[i]+sum)){v.push(A[i]);//把栈改成队列,就会得到相反的输出顺序。为什么...return 1;}}int main(){while (~scanf("%d%d",&n,&k)){for (int i=0;i<n;i++)scanf("%d",&A[i]);if (dfs()){printf("YES\n");while (!v.empty()){int x=v.top();printf("%d ",x);v.pop();}printf("\n");}elseprintf("NO\n");}    return 0;}        


0 0
原创粉丝点击