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;
}
相关推荐
tobias.b2 小时前
408真题解析-2010-7-数据结构-无向连通图
数据结构·算法·图论·计算机考研·408真题解析
imX2G3 小时前
爆破小游戏2.0
c++
良木生香3 小时前
【鼠鼠优选算法-双指针】003:快乐数 & 004:盛水最多的容器
算法
Cx330❀3 小时前
【优选算法必刷100题】第41-42题(模拟):Z 字形变换,外观数列
c++·算法
沃尔特。3 小时前
直流无刷电机FOC控制算法
c语言·stm32·嵌入式硬件·算法
CW32生态社区3 小时前
CW32L012的PID温度控制——算法基础
单片机·嵌入式硬件·算法·pid·cw32
Cx330❀3 小时前
【优选算法必刷100题】第038题(位运算):消失的两个数字
开发语言·c++·算法·leetcode·面试
漫随流水3 小时前
leetcode回溯算法(93.复原IP地址)
数据结构·算法·leetcode·回溯算法
燃于AC之乐3 小时前
我的算法修炼之路--5——专破“思维陷阱”,那些让你拍案叫绝的非常规秒解
c++·算法·贪心算法·bfs·二分答案·扩展域并查集·动态规划(最长上升子序列)
艾莉丝努力练剑3 小时前
【优选算法必刷100题】第021~22题(二分查找算法):山脉数组的峰顶索引、寻找峰值
数据结构·c++·算法·leetcode·stl