第九届北京化工大学程序设计竞赛网络同步赛 A

来源:互联网 发布:mac希腊字母怎么打 编辑:程序博客网 时间:2024/04/29 01:32

PS:http://blog.csdn.net/my_acm_dream/article/details/45603467

#include<iostream>
#include<cstdio>
#include<string.h>
#include<cstring>
#include<string>
#include<stack>
#include<set>
#include<algorithm>
#include<cmath>
#include<vector>
#include<map>

#define LOCAL
#define ll long long
#define lll unsigned long long
#define MAX 1000009
#define eps 1e-8
#define INF 0x7fffffff
#define mod 1000000007

using namespace std;

int flag;
ll sum[MAX];
int a[MAX];
int n;

void dfs(int n,int H)
{
    if(flag)return;
    if(H>sum[n])return;
    if(H==sum[n]||H==0)
    {
        flag = 1;
        return ;
    }
    for(int i = n; i>=1; i--)
    {
        if(H>=a[i])
        {
            dfs(i-1,H - a[i]);
        }
    }
}
int main()
{
    // freopen("date.in","r",stdin);
    int H;
    while(scanf("%d%d",&n,&H)!=EOF)
    {
        for(int i = 1; i<=n; i++)
        {
            scanf("%d",&a[i]);
            sum[i] = sum[i - 1] + a[i];//存储前i项和,这样能快速处理
        }
        flag = 0;
        dfs(n,H);
        if(flag)
            puts("Yes");
        else
            puts("No");
    }
    return 0;
}


0 0
原创粉丝点击