Codeforces Round #699 (Div. 2) A. Space Navigation

这篇博客讨论了如何解决在Codeforces Round #699 (Div. 2) A. Space Navigation问题中,个人宇宙飞船导航系统因订单串损坏而无法到达Planetforces的问题。你需要通过删除订单串中的某些订单,使得飞船能够从起点(0,0)到达目标坐标。题目提供了输入输出格式,并给出了几个示例测试用例来说明解决方案。" 112923936,10541047,TopHat2:RNA-Seq中的高效跨内含子比对工具,"['生物信息学', '基因组分析', 'RNA-seq分析', '比对工具', '生物数据分析']
摘要由CSDN通过智能技术生成

A. Space Navigation

time limit per test : 2 seconds
memory limit per test : 256 megabytes
input : standard input
output : standard output

You were dreaming that you are traveling to a planet named Planetforces on your personal spaceship. Unfortunately, its piloting system was corrupted and now you need to fix it in order to reach Planetforces.

Space can be represented as the XY plane. You are starting at point (0,0), and Planetforces is located in point (px,py).

The piloting system of your spaceship follows its list of orders which can be represented as a string s. The system reads s from left to right. Suppose you are at point (x,y) and current order is si:

if si=U, you move to (x,y+1);
if si=D, you move to (x,y−1);
if si=R, you move to (x+1,y);
if si=L, you move to (x−1,y).
Since string s could be corrupted, there is a possibility that you won’t reach Planetforces in the end. Fortunately, you can delete some orders from s but you can’t change their positions.

Can you delete several orders (possibly, zero) from s in such a way, that you’ll reach Planetforces after the system processes all orders?

Input

The first line contains a single integer t (1≤t≤1000) — the number of
test cases.

Each test case consists of two lines. The first line in each test case
contains two integers px and py (−105≤px,py≤105; (px,py)≠(0,0)) — the
coordinates of Planetforces (px,py).

The second line contains the string s (1≤|s|≤105: |s| is the length of
string s) — the list of orders.

It is guaranteed that the sum of |s| over all test cases does not
exceed 105.

Output

For each test case, print “YES” if you can delete several orders
(possibly, zero) from s in such a way, that you’ll reach Planetforces.
Otherwise, print “NO”. You can print each letter in any case (upper or
lower).

Example

input
6
10 5
RRRRRRRRRRUUUUU
1 1
UDDDRLLL
-3 -5
LDLDLDDDR
1 2
LLLLUU
3 -2
RDULRLLDR
-1 6
RUDURUUUUR

output
YES
YES
YES
NO
YES
NO

Note

In the first case, you don’t need to modify s, since the given s will
bring you to Planetforces.

In the second case, you can delete orders s2, s3, s4, s6, s7 and s8,
so s becomes equal to “UR”.

In the third test case, you have to delete order s9, otherwise, you
won’t finish in the position of Planetforces.

题解:

#include<iostream>
#include<string>
using namespace std;
int main(){
	int t;
	cin>>t;
	while(t--){
		int x,y,x1=0,y1=0;
		cin>>x>>y;
		string s;
		cin>>s;
		for(int i=0;i<s.length();i++){
			if(s[i]=='U'&&y>y1)
				y1+=1;
			if(s[i]=='D'&&y<y1)
				y1-=1;
			if(s[i]=='R'&&x>x1)
				x1+=1;
			if(s[i]=='L'&&x<x1)
				x1-=1;
		}
		if(x==x1&&y==y1)
			cout<<"YES"<<endl;
		else
			cout<<"NO"<<endl;
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值