zoukankan      html  css  js  c++  java
  • 51nod1268(基础dfs)

    解题思路:直接搜索找就行了,搜两边,一个是加入这个数字,一边是不加入这个数字

    代码:

    #include<iostream>
    #include<algorithm>
    #define maxn 30
    using namespace std;
    int a[maxn];
    int k;
    int n;
    int flag;
    void dfs(int i,int sum,int step)
    {
        if(step>n)
            return;
        else
        {
            if(sum==a[i])
            {
                flag=1;
                return;
            }
            if(sum>a[i])
                dfs(i+1,sum-a[i],step+1);
                dfs(i+1,sum,step+1);
        }
    }
    int main()
    {
        while(cin>>n>>k)
        {
            for(int i=1;i<=n;i++)
                cin>>a[i];
            dfs(1,k,1);
            if(flag==1)
                cout<<"Yes ";
            else
                cout<<"No ";
        }
        return 0;
    }

  • 相关阅读:
    C语言I博客作业08
    第十一周助教总结
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I作业004
    第十三周助教总结
    C语言I博客作业09
    第十二周助教总结
    C语言I博客作业08
  • 原文地址:https://www.cnblogs.com/huangdao/p/7800112.html
Copyright © 2011-2022 走看看