蓝桥杯 - 和为T

题目链接:点击打开链接


题目大意:


解题思路:二叉树LDR遍历思想。


AC 代码

#include
#include

#define mem(a,b) memset(a,b,sizeof a);

using namespace std;

typedef long long ll;
const int maxn = 30;
int a[maxn],b[maxn];
int n,t,len,rs;

void dfs(int cnt,int sum)
{
//    for(int i=len-1;i>=0;i--)
//    {
//        printf("%d ",b[i]);
//    }
//    puts("");

    if(cnt==0)
    {
        if(len!=0 && sum==t)
        {
            for(int i=len-1;i>=0;i--)
            {
                printf("%d ",b[i]);
            }
            puts("");
            rs++;
        }
        return;
    }
    dfs(cnt-1,sum); // 二叉树LDR遍历思想
    b[len++]=a[cnt-1];
    dfs(cnt-1,sum+a[cnt-1]);
    len--;
}

int main()
{
    while(~scanf("%d",&n)) // TLE --> 去掉while
    {
        for(int i=0;i

你可能感兴趣的:(#,ACM,#,蓝桥杯,#,DFS,#,图)