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;
    }

  • 相关阅读:
    关于ping github.com超时的解决办法
    git使用过程中的若干问题笔记
    PAT甲级1017题解——模拟排序
    第七章4
    第七章3
    第七章2
    第七章1
    第六章4
    第六章3
    第六章2
  • 原文地址:https://www.cnblogs.com/huangdao/p/7800112.html
Copyright © 2011-2022 走看看