Hybrid Crystals(hdu6140)

来源:互联网 发布:emily the strange淘宝 编辑:程序博客网 时间:2024/06/05 22:41

题目:点击打开链接

题意:就是给定一个序列。序列的每个值都有属性,N代表可加可减,L代表只能加,D代表只能减,当然这些都可以用或者不用。给定一个k,问k是否可能用这个序列构成。

解题思路:就是分别向两边扩展区间,看是否在这个区间里,真的是,这是什么题,真的坑,!!!!!

#include <bits/stdc++.h>using namespace std;int main(){    int a[1005];    char ch[1005];    int T;    scanf("%d",&T);    while(T--)    {        int n,k;        scanf("%d%d",&n,&k);        for(int i=1; i<=n; i++)            scanf("%d",&a[i]);        for(int j=1; j<=n; j++)        {            getchar();            scanf("%c",&ch[j]);        }        int l=0,r=0;        for(int i=1; i<=n; i++)        {            if(ch[i]=='N')            {                l-=a[i];                r+=a[i];            }            if(ch[i]=='D')                l-=a[i];            if(ch[i]=='L')                r+=a[i];        }        //cout<<l<<" "<<r<<endl;        if(k>=l&&k<=r)            printf("yes\n");        else            printf("no\n");    }    return 0;}


原创粉丝点击