首页 > 其他 > 详细

HDU 6140 Hybrid Crystals

时间:2018-07-07 11:56:23      阅读:155      评论:0      收藏:0      [点我收藏+]

题意:这个题其实是题意很麻烦,这个题目上有很长的等式,这个等式我们仔细观察我们可以发现,这其实是由3部分组成的,每一部分是关于N,L,和D的,我们可以拆成三个等式看,代表的意思就是,每次加入的新区间的长度,都小于之前区间的长度,但是题目中指出,我们的第一个数是唯一的,所以我们可以的到一个-1,0,1的区间(0是代表第一个数不选的意思,所以就得到了0)这样我们每次扩展的都比之前所拥有的的区间长度小, 所以我们只用记录最小值和最大值就可以了

代码;

#include <bits/stdc++.h>
using namespace std;

const int maxn=3005;
int a[maxn];
char ch[maxn];

int main()
{
    int T;
    scanf("%d",&T);
    while(T--){
        int n,k;
        scanf("%d%d",&n,&k);
        int l=-1,r=1;
        for(int i=1;i<=n;i++)scanf("%d",&a[i]);
        for(int i=1;i<=n;i++)cin>>ch[i];
        for(int i=2;i<=n;i++){
            if(ch[i]==N){
                l-=a[i];r+=a[i];
            }
            else if(ch[i]==L){
                r+=a[i];
            }
            else{
                l-=a[i];
            }
        }
        if(l<=k&&k<=r){
            puts("yes");
        }
        else{
            puts("no");
        }
    }
    return 0;
}

 

HDU 6140 Hybrid Crystals

原文:https://www.cnblogs.com/lalalatianlalu/p/9256872.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!