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

这是一个关于如何修复一个在梦境中从地球出发前往Planetforces星球的破损飞船导航系统的问题。飞船从(0,0)开始,目标点位于(px,py)。题目提供了一串指令,包括上(U)、下(D)、右(R)、左(L)四个方向,允许删除部分指令以使飞船最终到达目标。需要判断是否能通过删除指令使得飞船能够到达Planetforces。" 85725016,7282567,CentOS7安装Python2.7.5与MySQL详细教程,"['Linux操作系统', '数据库管理', 'Python环境搭建', 'MySQL安装']
摘要由CSDN通过智能技术生成

A. Space Navigation
time limit per test2 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard 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
inputCopy
6
10 5
RRRRRRRRRRUUUUU
1 1
UDDDRLLL
-3 -5
LDLDLDDDR
1 2
LLLLUU
3 -2
RDULRLLDR
-1 6
RUDURUUUUR
outputCopy
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<bits/stdc++.h>
using namespace std;
#define FAST ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
int main()
{
   
    FAST;
    int n;
    int t;
    cin>>t
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值