当前位置: 首页 > news >正文

CCF CSP 第36次(2024.12)(1_移动_C++)

CCF CSP 第36次(2024.12)(1_移动_C++)

      • 解题思路:
        • 思路一:
      • 代码实现
        • 代码实现(思路一):

时间限制: 1.0 秒
空间限制: 512 MiB
原题链接
在这里插入图片描述

解题思路:

思路一:

1、解题步骤拆分:
① 数据输入:

  • 第一行输入 n(int) 和 k(int) (n代表实验场地的大小,k代表查询个数)
  • 接下来k行每行包含三个数据 x(int) y(int) str(string) ,x 和 y为机器人的初始位置,str为机器人的指令序列(fblr)

② 数据处理:
对x y进行相应的变换 (注意超出场地大小则不移动)

  • 向前移动 f
  • 向后移动 b
  • 向左移动 l
  • 向右移动 r

③ 数据输出:输出最终机器人所处场地的位置

代码实现

代码实现(思路一):
#include<iostream>
#include<vector>
using namespace std;int main(int argc, char const *argv[])
{int n, k;cin >> n >> k;  // 输入实验场地的大小 n 和查询的次数 kint x, y;string str;// 不需要一开始就初始化 ans 数组的大小,后续使用 push_back 添加数据vector<vector<int>> ans;  // 用于存储每个查询的结果(每次机器人的最终位置)// 处理每个查询for (int i = 0; i < k; i++) {cin >> x >> y >> str;  // 输入机器人初始位置 (x, y) 和指令序列 str// 对每个指令进行处理for (char &s : str) {if (s == 'f' && y < n) y += 1;  // 'f' 表示向前移动,且不能超过场地的上限if (s == 'b' && y > 1) y -= 1;  // 'b' 表示向后移动,且不能低于场地的下限if (s == 'l' && x > 1) x -= 1;  // 'l' 表示向左移动,且不能低于场地的下限if (s == 'r' && x < n) x += 1;  // 'r' 表示向右移动,且不能超过场地的上限}// 将机器人的最终位置加入 ans 数组ans.push_back({x, y});}// 输出每个查询后机器人的最终位置for (int i = 0; i < k; i++) {cout << ans[i][0] << " " << ans[i][1] << endl;  // 输出第 i 个查询的最终位置}return 0;
}

欢迎大家和我沟通交流(✿◠‿◠)

相关文章:

  • 基于STM32、HAL库的TCA9555PWR I/O扩展器驱动程序设计
  • linux如何用关键字搜索日志
  • 学习笔记十二——Rust 高阶函数彻底入门(超详细过程解析 + 每步数值追踪)
  • 【微信小程序】报错: http://127.0.0.1:7001 不在以下 request 合法域名列表中
  • 危化品安全员考试常见与注意事项
  • Python GUI 编程 | QPushButton 按钮控件详解 — 边框扁平化
  • virt-install和libguestfs工具常用虚拟机管理命令
  • Oracle REGEXP_SUBSTR
  • LINUX基石
  • 今日一记:五人分鱼与医院值班推理
  • 每日一题(小白)暴力娱乐篇30
  • 简单socket通信,回显 服务器程序与客户端程序之间的通信。
  • linux-vi和文件操作
  • Windows 图形显示驱动开发-WDDM 1.2功能—无显示器系统支持
  • CExercise_13_1排序算法_1插入排序
  • 了解一下Unity的RenderQueue
  • 【基于Servlet技术处理表单】
  • 目标检测:YOLOv11(Ultralytics)环境配置
  • Vue 3 的组合式 API-hooks
  • HTTPS协议原理
  • 澎湃思想周报丨数字时代的育儿;凛冬已至好莱坞
  • 北上广深还是小城之春?“五一”想好去哪玩了吗
  • 我国已形成完整人工智能产业体系,专利申请量位居全球首位
  • 十四届全国人大常委会第十五次会议在京举行,审议民营经济促进法草案等
  • 六朝文物草连空——丹阳句容南朝石刻考察纪
  • 宜家上海徐汇商场明天恢复营业,改造后有啥新变化?