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

P14803 [CCPC 2024 哈尔滨站] 在哈尔滨指路 个人题解

题目链接

题目大意

给定用东西南北表示的路线,让你使用左右和直行来表示

Solution

这是一道模拟题,只要顺着他给定的方向走就行,但是对于像我一样出门不分南北东西的人来说有点困难。

首先可以发现给定的路线不会出现相邻的相反指令,比如南后面就是北,东后面就是西这类的,那么路线改变时一定是发生了一次向左走或向右走。那么其实转变成左右指令时,原本的一条指令就会被拆成两条指令,分别为转向和直行距离,如果我们第一次面向的方向就是原第一条指令的方向时,第一条指令就只需要直行距离这条指令代替就行,那么总指令数为 \(1+2*(n-1)\)

然后我们就开始进行转向操作,为了照顾像我一样的路痴,下面是一张方向标:

我们可以通过看这张图防止自己绕晕,具体来说为:

  1. 如果面朝北方,那么左转是西,右转是东。
  2. 如果面朝东方,那么左转是北,右转是南。
  3. 如果面朝南方,那么左转是东,右转是西。
  4. 如果面朝西方,那么左转是南,右转是北。

然后就是按照这个模拟就好了,具体看代码。

代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+6;
inline int read(){int x=0,f=1;char c=getchar();while(c<'0' || c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0' && c<='9'){x=x*10+c-'0';c=getchar();}return x*f;
}
struct Node{char c;int x;
}s[N];
int T=read();
int main(){while(T--){int n=read();for(int i=1;i<=n;i++){cin>>s[i].c;s[i].x=read();}printf("%d %c\nZ %d\n",1+(n-1)*2,s[1].c,s[1].x);//初始朝向为第一条指令的方向 char last=s[1].c;for(int i=2;i<=n;i++){if(last=='N'){//面朝北方if(s[i].c=='E') puts("R");//右转是东else if(s[i].c=='W') puts("L");//左转是西} else if(last=='E'){//面朝东方if(s[i].c=='S') puts("R");//右转是南else if(s[i].c=='N') puts("L");//左转是北}else if(last=='S'){//面朝南方if(s[i].c=='W') puts("R");//右转是西else if(s[i].c=='E') puts("L");//左转是东}else if(last=='W'){//面朝西方if(s[i].c=='N') puts("R");//右转是北else if(s[i].c=='S') puts("L");//左转是南}printf("Z %d\n",s[i].x);last=s[i].c;}}return 0;
}
http://www.jsqmd.com/news/115494/

相关文章:

  • 数据库测试数据的构造策略与全生命周期管理
  • 揭秘JavaScript闭包,继承,正则表达式
  • git命令速查表
  • 匹配机制:ELO算法
  • 汇川AC712高速脉冲输入
  • CNN-ABKDE 区间预测 基于卷积神经网络与自适应带宽核密度估计的多变量回归模型
  • 详细介绍:类 Excel 工具选型指南:SpreadJS 纯前端方案引领企业数据处理新范式
  • 工业积木的连接密码:聊聊你身边的小小紧固件
  • Shell脚本编程 - 十里
  • 38大龄Java程序员的求职困局:中年失业
  • CTF进阶解题,掌握这套框架+技巧就够了!
  • IS-IS路由协议介绍(一)
  • 完整教程:设计模式(九)装饰器模式 — 不修改源码却能扩展能力的优雅方案
  • MATLAB 项目实例,展示如何使用 多变量变分模态分解(MVMD) 结合 支持向量机(SVM) 实现故障诊断分类预测
  • 钢铁厂循环水系统水池清淤施工哪个服务商好
  • 深入解析:java锁:从 Mark Word 锁升级到 AQS
  • 口碑好的钢铁厂循环水系统水池清淤施工厂家
  • MATLAB实现基于多层感知机(MLP)进行锂电池剩余寿命(RUL)预测
  • 前端把token加到请求头,零基础入门到精通,收藏这篇就够了
  • 2025年实力派非标钣金定制厂商TOP榜,最新非标钣金定制优选品牌推荐与解析 - 品牌推荐师
  • Atcoder abc436 A-E
  • 网络安全学到一半,感觉东西越来越多,怎么才能系统的学好学透?
  • Android 控制pwm风扇
  • 学习机与线下补课如何选择?2025年不同学段搭配思路分析 - 品牌测评鉴赏家
  • Vue面试中,经常会被问到的面试题/Vue知识点整理,收藏这篇就够了
  • 大语言模型(LLM)核心原理:从Transformer架构到数据预处理流程!
  • 2025年火锅榜单:3公里内性价比爆棚的火锅店推荐,老火锅/美食/川渝火锅/重庆火锅/火锅/火锅店/特色美食火锅品牌有哪些 - 品牌推荐师
  • 前端知识笔记———slice、splice、split 的使用,收藏这篇就够了
  • 第一节、判断网站是否符合谷歌SEO的标准
  • 完整教程:图解HTTP、HTTP知识大全