UVa 736 Lost in Space

发布时间:2026/8/25 4:34:47

UVa 736 Lost in Space
题目描述给定一个N×NN \times NN×N的字符网格N≤50N \le 50N≤50每个格子可包含任意可打印ASCII\texttt{ASCII}ASCII字符ASCII\texttt{ASCII}ASCII码323232到126126126包含空格。随后给出若干个待查找的单词长度111到NNN不含空格。单词在网格中的出现定义为从某个格子开始沿着八个方向之一北、东北、东、东南、南、西南、西、西北移动依次匹配单词的每个字符。移动时若遇到空格字符则沿同一方向继续跳过即忽略空格直到遇到非空格或越界。查找所有出现位置按行升序、列升序、方向顺时针顺序输出每个出现起始坐标和方向。若无出现输出not found。每组数据间输出空行每个单词输出前先输出一个空行。输入格式第一行为一个整数表示数据组数随后有一个空行。每组数据第一行是一个整数NNN接下来NNN行每行长度为NNN的字符串可能包含前导或中间空格但无尾随空格表示网格。随后若干行每行一个单词不含空格直到遇到空行或文件结束。每组数据之间无额外标记。输出格式对于每个单词首先输出一个空行然后输出该单词本身。接着按规则输出所有出现位置格式为(row,column) - dir每行一个。若无出现则输出not found。每组数据结束后输出一个空行即两组数据之间有一个空行。样例输入1 4 LOST I N SP A C E ANT LOT S PT样例输出ANT (3,4) - N LOT not found S (1,3) - N (1,3) - NE (1,3) - E (1,3) - SE (1,3) - S (1,3) - SW (1,3) - W (1,3) - NW (3,1) - N (3,1) - NE (3,1) - E (3,1) - SE (3,1) - S (3,1) - SW (3,1) - W (3,1) - NW PT (3,2) - NE题目分析网格中包含空格空格在匹配过程中被忽略相当于路径可以在空格区域自由穿过但必须保持直线方向。因此匹配一个单词时从起点出发沿某个方向每次移动一格如果当前位置是空格则继续沿同方向移动直到找到非空格或越界。每跳过一个空格不消耗字符只当找到非空格且与单词下一个字符匹配时才消耗一个字符。若未匹配或越界则失败。需要枚举所有起点和八个方向复杂度O(N2×8×L)O(N^2 \times 8 \times L)O(N2×8×L)其中LLL为单词长度最大N50N50N50完全可行。解题思路实现步骤确定如下步骤1\texttt{1}1. 读取数据组数跳过空行。对于每组数据读取NNN然后读入NNN行网格每行可能包含空格使用getline\texttt{getline}getline读取并存入二维字符数组。步骤2\texttt{2}2. 定义方向数组顺序为N, NE, E, SE, S, SW, W, NW顺时针。每个方向对应行、列增量。步骤3\texttt{3}3. 对于每个单词输出一个空行和单词本身。然后枚举所有起点(i,j)(i,j)(i,j)若该格字符与单词第一个字符相同则对每个方向进行匹配尝试。步骤4\texttt{4}4. 匹配过程从起点出发设当前行、列为(r,c)(r,c)(r,c)已匹配的单词索引idx0\textit{idx}0idx0。在方向ddd上循环每次先移动一步到新位置若越界则失败若当前位置字符为空格则继续移动跳过不消耗字符若为非空格则与单词的下一个字符idx1\textit{idx}1idx1比较若匹配则idx\textit{idx}idx增加继续循环若不匹配则失败。当idx\textit{idx}idx达到单词长度减111时匹配成功记录该起点和方向。步骤5\texttt{5}5. 所有匹配结果按起点行升序、列升序、方向顺序输出。由于枚举顺序为行、列、方向且方向顺序固定输出自然符合要求。若没有匹配则输出not found。步骤6\texttt{6}6. 每组数据处理完毕后输出一个空行通过if (c1) cout \n实现。代码实现// Lost in Space// UVa ID: 736// Verdict: Accepted// Submission Date: 2018-03-29// UVa Run Time: 0.010s//// 版权所有C2018邱秋。metaphysis # yeah dot net#includebits/stdc.husingnamespacestd;intmain(intargc,char*argv[]){cin.tie(0),cout.tie(0),ios::sync_with_stdio(false);intcases;charboard[64][64];intn,offset[8][2]{{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1}};string dirs[8]{N,NE,E,SE,S,SW,W,NW};string line,word;cincases;for(intc1;ccases;c){if(c1)cout\n;cinn;cin.ignore(1024,\n);for(inti0;in;i){getline(cin,line);for(intj0;jn;j)board[i][j]line[j];}while(getline(cin,word),word.length()0){boolprintedfalse;cout\nword\n;for(inti0;in;i)for(intj0;jn;j){if(board[i][j]word.front()){for(intk0;k8;k){boolsametrue;intnextii,nextjj;for(intl1;lword.length();l){nextioffset[k][0],nextjoffset[k][1];while(nexti0nextinnextj0nextjnboard[nexti][nextj] )nextioffset[k][0],nextjoffset[k][1];if(nexti0nextinnextj0nextjnboard[nexti][nextj]word[l])continue;samefalse;break;}if(same){cout((i1),(j1)) - ;coutdirs[k]\n;printedtrue;}}}}if(!printed)coutnot found\n;}}return0;}总结本题模拟字符串在二维网格中的匹配关键点在于忽略空格字符即匹配时自动跳过空格。采用枚举起点和方向并沿方向步进遇到空格跳过直到匹配完整单词或失败。输出顺序按行、列、方向利用枚举顺序自然满足。注意输入包含空格需用getline\texttt{getline}getline读取。该算法时间复杂度为O(N3×8)O(N^3 \times 8)O(N3×8)对于N≤50N \le 50N≤50足够高效。实现简洁易于扩展。

相关新闻

Linux 启动过程详解

Linux 启动过程详解

2026/8/25 4:34:46

本文取自 Linux 中国,本人仅是对文章做一个防丢备份。 理解操作系统开机引导和启动过程对于配置操作系统和解决相关启动问题是至关重要的。该文章陈述了 GRUB2 引导装载程序开机引导装载内核的过程和 systemd 初始化系统执行开机启动操作系统的过程。 事实上&#…

投票评选系统的数据导出与审计溯源:技术实现要点与合规落地

投票评选系统的数据导出与审计溯源:技术实现要点与合规落地

2026/8/25 4:24:46

2026 年做线上评选系统的技术对接,有一个很容易被忽略的刚需模块:数据导出与审计溯源。很多团队 90% 的精力都放在前端交互和防刷逻辑上,只做了最基础的结果导出,等到政企客户要合规存档、活动出现刷票争议要核查时,才…

机器学习四大核心算法实战:从决策树到神经网络,手把手教你项目落地

机器学习四大核心算法实战:从决策树到神经网络,手把手教你项目落地

2026/8/25 4:24:46

你是不是也遇到过这样的情况:想学机器学习,打开教程,满屏都是数学公式和抽象概念,看了半天还是不知道从哪下手?或者跟着教程跑通了代码,但一到自己的项目就不知道该怎么用? 这其实不是你的问题…

实战指南:将OpenClaw智能体接入Telegram,打造对话式AI助手

实战指南:将OpenClaw智能体接入Telegram,打造对话式AI助手

2026/8/25 5:14:48

1. 项目概述:当OpenClaw遇见Telegram最近在折腾一个挺有意思的事儿,把OpenClaw这个智能体框架接入了Telegram。简单来说,就是让你在Telegram里,能像跟一个真人助手聊天一样,指挥OpenClaw去完成各种任务,比如…

Vera1.1 图像特征继承技术原理,解决角色变脸问题>

Vera1.1 图像特征继承技术原理,解决角色变脸问题>

2026/8/25 5:14:48

做 AIGC 视频的同学,大概率都踩过角色变脸这个大坑。 同样一个人物,前一帧五官正常,下一帧五官偏移、脸型走形,发型、面部细节直接 “换个人”。哪怕提示词写得再精细,帧与帧之间角色身份割裂,成片直接报废…

客户总问:ISTA 3A、3E、3H、3L 到底有啥区别?一篇讲明白

客户总问:ISTA 3A、3E、3H、3L 到底有啥区别?一篇讲明白

2026/8/25 5:14:48

做包装运输测试这么久,被问得最多的一句话就是:"我这个货到底该做哪个标准?"ISTA 3 系列名字都带个 3,看起来像四胞胎,其实管的场景完全不一样。选错了,钱花了还不顶用。今天用大白话给你捋清楚。…

华微软件参与《企业级前线部署工程(FDE)能力成熟度模型》首次研讨会

华微软件参与《企业级前线部署工程(FDE)能力成熟度模型》首次研讨会

2026/8/25 5:14:48

来源:大数据技术标准推进委员会 当前,企业应用人工智能的主要矛盾正在发生深刻变化:焦点已从“有没有 AI”转向“AI 能否进入生产环境、能否嵌入核心流程、能否持续创造价值”。企业 AI 工程化落地需要解决场景设计、流程再造、数据准备、知…

MySQL 存储空间与索引运维实战:从空间排查到在线扩容

MySQL 存储空间与索引运维实战:从空间排查到在线扩容

2026/8/25 5:14:48

MySQL 存储空间与索引运维实战:从空间排查到在线扩容 适用版本:MySQL 5.7 / 8.0(InnoDB) 读者对象:DBA、运维、后端同学 核心结论先放在这里:库空间看磁盘和 information_schema;索引不会整棵装…

奋斗叙事与幸存者偏差:全球名人成功真相与80后破局之道

奋斗叙事与幸存者偏差:全球名人成功真相与80后破局之道

2026/8/25 5:04:48

核心结论 全球名人的成功中,极端努力是真实的、普遍存在的——曼德拉27年牢狱、邓小平三落三起、马斯克睡工厂、法拉第从装订学徒自学成才,这些都有可靠记载。但努力是必要条件,不是充分条件:意大利卡塔尼亚大学 Pluchino 团队 2…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/24 19:53:32

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/24 19:56:07

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/24 21:16:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

2026/8/25 0:04:34

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

2026/8/25 0:04:35

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

2026/8/25 0:04:35

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…