news 2026/6/10 16:12:57

UVa 118 Mutant Flatworld Explorers

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UVa 118 Mutant Flatworld Explorers

题目分析

本题是一个模拟类题目,要求模拟机器人在一个矩形网格世界中的移动过程。世界的大小由右上角坐标( w , h ) (w, h)(w,h)给出,左下角固定为( 0 , 0 ) (0, 0)(0,0)。每个机器人有初始位置( x , y ) (x, y)(x,y)和朝向(N,S,E,W分别代表北、南、东、西)。机器人按顺序接受指令,指令由三种动作组成:

  • L:向左转90 9090度,位置不变。
  • R:向右转90 9090度,位置不变。
  • F:向前移动一格,方向不变。

机器人如果移动到网格边界之外,则视为“坠落”,并在坠落前的最后一个位置留下“气味”。之后若其他机器人试图从同一位置坠落到同一方向,则会忽略该移动指令,以避免再次坠落。

输入首先给出世界大小,之后每组数据包括机器人的初始位置和指令字符串。输出每个机器人的最终位置和朝向,若坠落则附加输出LOST

关键点

  • 网格坐标范围为0 ≤ x ≤ w 0 \leq x \leq w0xw,0 ≤ y ≤ h 0 \leq y \leq h0yh
  • 最大坐标为50 5050,指令长度小于100 100100
  • 机器人按输入顺序独立处理,但“气味”信息是全局保存的。

解题思路

我们可以用一个二维数组grid记录每个格子是否“危险”(即是否有机器人从这里坠落过)。初始时所有格子都是安全的。

对于每个机器人,我们依次处理其指令:

  • 如果是转向指令(LR),则更新当前朝向。
  • 如果是前进指令(F),则根据当前朝向更新坐标。
  • 更新坐标后检查是否越界:
    • 如果越界,则检查上一步所在格子是否标记为“危险”:
      • 如果是,则忽略该移动,恢复上一步状态。
      • 如果不是,则输出上一步位置和朝向,并加上LOST,同时将上一步所在格子标记为“危险”,结束该机器人的处理。
  • 如果所有指令执行完毕仍未坠落,则输出最终位置和朝向。

方向转换
我们可以用字符串表示方向(如N,S,E,W),并通过条件判断实现转向逻辑。也可以使用数字编码(如0 , 1 , 2 , 3 0, 1, 2, 30,1,2,3)配合方向向量数组来简化代码。

注意:题目中给出的世界大小widthheight分别对应w wwh hh,而数组索引从0 00开始,所以判断越界时要注意边界条件。

代码实现

// Mutant Flatworld Explorers// UVa ID: 118// Verdict: Accepted// Submission Date: 2011-11-26// UVa Run Time: 0.008s//// 版权所有(C)2011,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;constintMAXN=55;constintDANGEROUS=0;constintSAFE=1;structstatus{intx,y;string direction;};intgrid[MAXN][MAXN],width,height;boolmove(status&s,string instructions){status last;for(inti=0;i<instructions.length();i++){// 稍显华丽的 if else。last=s;if(s.direction=="N"&&instructions[i]=='L')s.direction="W";elseif(s.direction=="N"&&instructions[i]=='R')s.direction="E";elseif(s.direction=="N"&&instructions[i]=='F')s.y+=1;elseif(s.direction=="S"&&instructions[i]=='L')s.direction="E";elseif(s.direction=="S"&&instructions[i]=='R')s.direction="W";elseif(s.direction=="S"&&instructions[i]=='F')s.y-=1;elseif(s.direction=="W"&&instructions[i]=='L')s.direction="S";elseif(s.direction=="W"&&instructions[i]=='R')s.direction="N";elseif(s.direction=="W"&&instructions[i]=='F')s.x-=1;elseif(s.direction=="E"&&instructions[i]=='L')s.direction="N";elseif(s.direction=="E"&&instructions[i]=='R')s.direction="S";elseif(s.direction=="E"&&instructions[i]=='F')s.x+=1;if(s.x>width||s.x<0||s.y>height||s.y<0){if(grid[last.y][last.x]==DANGEROUS)s=last;else{cout<<last.x<<" "<<last.y<<" "<<last.direction;cout<<" LOST"<<endl;grid[last.y][last.x]=DANGEROUS;returntrue;}}}cout<<s.x<<" "<<s.y<<" "<<s.direction<<endl;returnfalse;}intmain(intargc,charconst*argv[]){status robot;string line;cin>>width>>height;for(inti=0;i<=height;i++)for(intj=0;j<=width;j++)grid[i][j]=SAFE;while(cin>>robot.x>>robot.y>>robot.direction){cin>>line;move(robot,line);}return0;}

总结

本题主要考察模拟和边界处理能力。实现时需要注意:

  • 正确处理越界判断和“气味”标记。
  • 机器人之间独立处理,但“气味”是全局共享的。
  • 输出格式要严格符合题目要求。

通过本题可以加深对状态模拟和条件判断的理解,适合作为模拟类题目的入门练习。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 12:08:13

短视频脚本构思:十分钟讲清楚VibeThinker是什么

VibeThinker&#xff1a;小模型如何颠覆大模型的推理霸权&#xff1f; 在AI圈还在疯狂堆参数、卷算力的时候&#xff0c;一个只有15亿参数的小模型&#xff0c;悄悄干了一件大事——它在高难度数学和算法竞赛题上&#xff0c;击败了那些动辄几百亿、上千亿参数的“巨无霸”。 这…

作者头像 李华
网站建设 2026/6/10 10:36:43

本科生论文查重工具最新排名:6大可靠平台及查询方法解析

本科生论文抽检工具排名&#xff1a;6大平台查询推荐 &#xfeff;千字文本1-2分钟完成处理 操作简单&#xff0c;适合技术小白 价格实惠&#xff0c;学生党友好 用AI改写一下&#xff0c;输出1段 核心工具对比速览 工具名称 核心功能 处理速度 适用场景 独特优势 aib…

作者头像 李华
网站建设 2026/6/10 10:44:05

2026年AI智能体学习路线图:如何从零开始,快速成为AI高手

现在已经是2026年了&#xff0c;AI智能体&#xff08;Agent&#xff09;遍地都是&#xff0c;我现在才开始学&#xff0c;是不是太晚了&#xff1f; 先给结论&#xff1a;什么时候开始都不晚&#xff0c;只要你不再把它当成“黑科技”&#xff0c;而是把它当成“水电煤”。 回想…

作者头像 李华
网站建设 2026/6/10 10:38:52

搜狗搜索排名策略:利用长尾词抢占首页位置

搜狗搜索排名策略&#xff1a;利用长尾词抢占首页位置 在搜索引擎的战场上&#xff0c;流量争夺早已不再是“谁内容多谁赢”的简单逻辑。如今&#xff0c;主流关键词如“Python教程”“算法入门”等几乎被头部平台垄断&#xff0c;中小型网站即便投入大量资源优化&#xff0c;也…

作者头像 李华
网站建设 2026/6/10 10:45:00

市场推广文案创作:围绕‘小模型高性能’打造卖点

市场推广文案创作&#xff1a;围绕“小模型高性能”打造卖点 在AI大模型狂飙突进的今天&#xff0c;千亿参数、万亿训练数据似乎成了标配。然而&#xff0c;当行业将目光聚焦于“更大更强”的同时&#xff0c;一个问题正变得越来越尖锐&#xff1a;我们真的需要这么庞大的模型来…

作者头像 李华
网站建设 2026/6/10 10:44:32

法律条文查询无效:VibeThinker没有接受相关训练

专精而非泛化&#xff1a;VibeThinker-1.5B 如何以小搏大重塑推理模型边界 在当前大模型军备竞赛愈演愈烈的背景下&#xff0c;动辄千亿参数、耗资数百万美元训练的“巨无霸”似乎成了AI能力的代名词。然而&#xff0c;在某所高校的实验室里&#xff0c;一台搭载RTX 3070显卡的…

作者头像 李华