week3-[分支嵌套]方阵

week3-分支嵌套方阵

题目描述

有 n×mn\times mn×m 个人站成 nnn 行 mmm 列的方阵。我们想知道第 xxx 行 yyy 列的人的某个方向有没有人。

输入格式

输入共 222 行。

第 111 行输入 444 个正整数 n,m,x,yn,m,x,yn,m,x,y。

第 222 行输入 111 个字符为 UDLR 其中之一,表示想知道方向上/下/左/右有没有人。

输出格式

输出共 111 行表示答案。如果有人则输出 YE5,否则输出 N0

样例 #1

样例输入 #1

复制代码
3 3 1 1
L

样例输出 #1

复制代码
N0

样例 #2

样例输入 #2

复制代码
3 4 2 4
D

样例输出 #2

复制代码
YE5

提示

数据范围

对于所有数据,1≤n,m≤1001\leq n,m\leq 1001≤n,m≤100,1≤x≤n1\leq x \leq n1≤x≤n,1≤y≤m1 \leq y \leq m1≤y≤m。

🔎 题意理解

  • 方阵有 n 行 m 列,每个格子里有一个人。
  • 我们关注的是 第 x 行 y 列的人。
  • 输入一个方向(U=上,D=下,L=左,R=右)。
  • 需要判断在这个方向上是否还能看到人(即对应方向上是否存在格子)。

🧩 思路分析

  • 向上 (U) :如果 x > 1,说明上面还有人 → 输出 YE5;否则 N0
  • 向下 (D) :如果 x < n,说明下面还有人 → 输出 YE5;否则 N0
  • 向左 (L) :如果 y > 1,说明左边还有人 → 输出 YE5;否则 N0
  • 向右 ® :如果 y < m,说明右边还有人 → 输出 YE5;否则 N0

🖥️ C++代码实现

c++ 复制代码
#include <iostream>
using namespace std;

int main() {
    int n, m, x, y;
    char dir;
    cin >> n >> m >> x >> y;
    cin >> dir;

    if (dir == 'U') {
        if (x > 1) cout << "YE5";
        else cout << "N0";
    } else if (dir == 'D') {
        if (x < n) cout << "YE5";
        else cout << "N0";
    } else if (dir == 'L') {
        if (y > 1) cout << "YE5";
        else cout << "N0";
    } else if (dir == 'R') {
        if (y < m) cout << "YE5";
        else cout << "N0";
    }

    return 0;
}
相关推荐
Frostnova丶3 分钟前
(12)LeetCode 76. 最小覆盖子串
算法·leetcode·职场和发展
灯澜忆梦23 分钟前
GO_函数_1
算法
言乐644 分钟前
Python实现建造微服务商城后台
开发语言·python·算法·微服务·架构
凉云生烟1 小时前
机器学习 02- KNN算法
人工智能·算法·机器学习
wabs6661 小时前
关于动态规划【力扣583.两个字符串的删除操作的思考】
算法·leetcode·动态规划
可编程芯片开发1 小时前
空气流量和空气压力参数解耦系统simulink建模与仿真
算法
小小龙学IT1 小时前
C++ 并发编程深度解析:从内存模型到无锁数据结构
数据结构·c++
_Doubletful2 小时前
妙用位运算:解构汉明距离至100%(提供分析与多解)
c语言·算法·leetcode
凯瑟琳.奥古斯特2 小时前
力扣1013三等分解法与C++实现
开发语言·c++·算法·leetcode·职场和发展