您的位置:首页 > 其它

2017多校第8场 HDU 6138 Fleet of the Eternal Throne 思维,暴力

2017-08-20 10:21 513 查看

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6138

题意:给了初始区间[-1,1],然后有一些操作,可以r加上一个数,l减掉一个数,或者同时操作,问最后能不能凑出k。

解法:由于开始是-1,所以l,r能延伸到的任何区间都可以凑出来,直接判断即可。

 

#include <bits/stdc++.h>
using namespace std;
int a[1010];
int main()
{
int T,n,k;
scanf("%d",&T);
while(T--)
{
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++){
char op[3];
scanf("%s", op);
if(op[0]=='L'){
r+=a[i];
}
if(op[0]=='N'){
r+=a[i];
l-=a[i];
}
if(op[0]=='D'){
l-=a[i];
}
}
if(k>=l&&k<=r) puts("yes");
else puts("no");
}
return 0;
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: