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

UVa 232 Crossword Answers

题目分析本题是一个填字游戏Crossword Puzzle\texttt{Crossword Puzzle}Crossword Puzzle的题目。给定一个r×cr \times cr×c的网格其中白色格子包含字母黑色格子用*\texttt{*}*表示。需要按照规则对白色格子进行编号并分别输出Across横向和Down纵向的单词列表。编号规则一个白色格子是eligible可编号的条件为该格子位于第一行i0i 0i0或者该格子位于第一列j0j 0j0或者该格子左边的格子同一行前一列是黑色格子*\texttt{*}*或者该格子上边的格子同一列前一行是黑色格子*\texttt{*}*。所有符合条件的格子按行优先顺序依次编号从111开始。单词定义规则Across单词从一个编号格开始向右连续取字母直到遇到黑色格子或行末结束。Down单词从一个编号格开始向下连续取字母直到遇到黑色格子或列末结束。解题思路读入数据读入网格的行数rrr和列数ccc当r0r 0r0且c0c 0c0时结束输入。编号阶段遍历整个网格对每个白色格子判断是否符合编号条件。使用一个二维数组indexer\texttt{indexer}indexer记录每个白色格子的编号初始为000。使用另一个二维数组backup\texttt{backup}backup备份编号用于输出Down单词时使用因为输出Across时会修改indexer\texttt{indexer}indexer的值。输出Across单词按行优先顺序遍历网格。如果当前格子有编号indexer[i][j]≠0\texttt{indexer}[i][j] \neq 0indexer[i][j]0则输出编号右对齐宽度为333从当前位置开始向右输出连续的字母直到遇到*\texttt{*}*或行末同时将已输出的格子对应的indexer\texttt{indexer}indexer置为000避免重复输出。输出Down单词按行优先顺序遍历网格。如果当前格子有备份编号backup[i][j]≠0\texttt{backup}[i][j] \neq 0backup[i][j]0则输出编号右对齐宽度为333从当前位置开始向下输出连续的字母直到遇到*\texttt{*}*或列末同时将已输出的格子对应的backup\texttt{backup}backup置为000。格式要求每个测试用例输出前先打印puzzle #x:\texttt{puzzle \#x:}puzzle #x:其中xxx从111开始。Across和Down列表分别以Across\texttt{Across}Across和Down\texttt{Down}Down作为标题。相邻两个测试用例的输出之间用空行分隔。代码实现// Crossword Answers// UVa ID: 232// Verdict: Accepted// Submission Date: 2016-05-11// UVa Run Time: 0.000s//// 版权所有C2016邱秋。metaphysis # yeah dot net#includebits/stdc.husingnamespacestd;charboard[10][10];// 存储网格最多10x10intindexer[10][10];// 存储每个白色格子的编号输出Across时使用intbackup[10][10];// 备份编号输出Down时使用intmain(){cin.tie(0);cout.sync_with_stdio(false);intr,c,cases0;// r行数c列数cases记录当前是第几个测试用例// 当r和c均为0时结束输入while(cinrc,rc){// 读入网格数据for(inti0;ir;i){for(intj0;jc;j){cinboard[i][j];indexer[i][j]0;// 初始化编号为0backup[i][j]0;// 初始化备份为0}}// 第一遍遍历为符合条件的白色格子编号intcounter1;for(inti0;ir;i){for(intj0;jc;j){// 只处理白色格子非*if(board[i][j]!*){// 判断是否为eligible格子// 1. 位于第一行i 0// 2. 位于第一列j 0// 3. 左边格子是黑色board[i][j-1] *// 4. 上边格子是黑色board[i-1][j] *if(i0||j0||(board[i-1][j]*)||(j0board[i][j-1]*)){indexer[i][j]counter;// 分配编号backup[i][j]indexer[i][j];// 备份编号}}}}// 如果不是第一个测试用例输出空行分隔if(cases)cout\n;// 输出测试用例标题coutpuzzle #cases:\n;// 输出Across单词coutAcrossendl;for(inti0;ir;i)for(intj0;jc;j)if(indexer[i][j])// 如果当前格子有编号{// 输出编号宽度为3右对齐coutsetw(3)rightindexer[i][j].;// 向右输出连续的字母for(intkj;kcboard[i][k]!*;k){coutboard[i][k];indexer[i][k]0;// 标记已输出避免重复}cout\n;}// 输出Down单词coutDown\n;for(inti0;ir;i)for(intj0;jc;j)if(backup[i][j])// 如果当前格子有备份编号{// 输出编号宽度为3右对齐coutsetw(3)rightbackup[i][j].;// 向下输出连续的字母for(intki;krboard[k][j]!*;k){coutboard[k][j];backup[k][j]0;// 标记已输出避免重复}cout\n;}}return0;}

相关文章:

UVa 232 Crossword Answers

题目分析 本题是一个填字游戏(Crossword Puzzle\texttt{Crossword Puzzle}Crossword Puzzle)的题目。给定一个 rcr \times crc 的网格,其中白色格子包含字母,黑色格子用 *\texttt{*}* 表示。需要按照规则对白色格子进行编号&#…...

DIY红外遥控电视关机器:从ATTINY85到晶体管驱动的硬件实践

1. 项目概述:从“关不掉”的烦恼到“一键清静”的实践不知道你有没有过这样的经历:在餐厅吃饭,墙上挂着的电视正播放着吵闹的广告;在候车室,多台电视同时播放着不同的节目,让人心烦意乱。你只想安安静静地待…...

AI写专著必备攻略:掌握这些技巧,用AI 3天完成20万字专著撰写

学术专著在写作时需要严谨的态度,而这种严谨性则依赖于大量的资料和数据支持。收集资料和整合数据恰恰是写作过程中最为繁琐且耗时的步骤。研究者需要广泛查找国内外的前沿文献,这不仅要求文献的权威性和相关性,还需追溯到原始来源&#xff0…...

STM32CubeMX实战:硬件CRC配置详解与软件算法性能实测

1. STM32硬件CRC模块初探 第一次接触STM32的硬件CRC模块时,我完全被它的效率震惊了。这个看似不起眼的外设,其实是个隐藏的性能怪兽。简单来说,CRC(循环冗余校验)就像给数据包贴上的防伪标签,而STM32内置的…...

PIC16F驱动WS2812:8位MCU实现无限随机动态灯光算法

1. 项目概述与核心思路 几年前,我在捣鼓一个节日南瓜灯项目时,遇到了一个经典难题:手头只有一片资源极其有限的PIC16F1847微控制器,却想驱动一串WS2812(也就是大家常说的NeoPixel)LED,做出那种看…...

STM32H743实战:用SN65HVD230驱动14个伺服电机,1M波特率稳如老狗

STM32H743与SN65HVD230构建高密度CANopen伺服控制系统的工程实践 在工业自动化与机器人控制领域,多轴协同运动控制对总线系统的实时性和稳定性提出了严苛要求。本文将深入剖析基于STM32H743微控制器与SN65HVD230 CAN收发器搭建的高密度伺服控制系统,分享…...

第 12 篇:W55RP20-EVB-Pico MicroPython 实战:MQTT 协议基础通信验证

本文为 WIZnet W55RP20 芯片 MicroPython教程第 12 篇,基于官方最新固件编写,代码均经过实际验证,可直接烧录运行。 版权声明:本文为 WIZnet 官方原创技术文章,转载请注明出处。 前言 上一篇实战教程,我们…...

【Perplexity实时学术搜索终极指南】:20年科研老兵亲授3大避坑法则与5倍效率提升实战技巧

更多请点击: https://codechina.net 第一章:Perplexity实时学术搜索的核心原理与定位 Perplexity 实时学术搜索并非传统关键词匹配型检索系统,而是构建在语义理解、动态上下文建模与多源可信度验证三位一体架构之上的新一代学术信息交互范式…...

SQL左连接查询结果为NULL怎么办_使用ISNULL函数替换空值技巧.txt

...

终极Ryzen调校指南:用SMUDebugTool解锁AMD平台隐藏性能

终极Ryzen调校指南:用SMUDebugTool解锁AMD平台隐藏性能 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://g…...

《Kubernetes应用篇:使用Helm工具部署mongodb 8.2.7副本集群》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:《K8S集群运维指南》 一、简介 使用Helm结合Bitnami Chart是部署生产级mongodb到Kubernetes集群的事实标准方案。整个过程高度自动化,可以极大地简化运维复杂度。 在实际生产环境中,为了保障稳定运…...

传统 OA 系统为什么难以满足现代企业管理需求

传统 OA 系统为什么难以满足现代企业管理需求 OA 曾经是很多企业数字化的起点:通知公告、请假报销、文件流转、会议管理、用印审批,让办公室从纸质时代进入线上时代。但今天,企业对 OA 的期待已经变了。 现代企业不只需要“把审批搬到线上…...

告别DETR训练慢!手把手教你用Deformable Attention加速目标检测模型收敛

突破DETR训练瓶颈:Deformable Attention加速目标检测实战指南 当你在深夜盯着屏幕,看着DETR模型训练到第50个epoch时验证集指标仍在波动,是否曾怀疑自己的显卡在空转?Transformer架构在目标检测领域的革命性突破有目共睹&#xff…...

别再只用if-else了!Matlab里switch/case的5个高效用法与避坑指南

别再只用if-else了!Matlab里switch/case的5个高效用法与避坑指南 在Matlab编程中,if-else语句几乎是每个开发者最先掌握的控制结构之一。但当你开始处理更复杂的条件逻辑时,一长串的if-elseif-else语句不仅让代码变得难以阅读,还可…...

别再复制粘贴了!深度优化你的TM1640驱动代码:效率与可维护性实战

TM1640驱动代码重构实战:从能用走向工业级 在嵌入式开发中,我们常常会遇到这样的场景:项目初期为了快速验证功能,直接从网上复制一段"能用就行"的驱动代码。但随着项目规模扩大,这些代码逐渐暴露出可维护性差…...

YOLOv8从零部署到实战:一站式环境配置与核心功能解析

1. YOLOv8环境搭建全攻略 第一次接触YOLOv8时,我也被各种依赖项搞得头晕眼花。经过多次实践,我总结出一套最稳妥的安装方案,特别适合刚入门的新手。YOLOv8作为当前最先进的目标检测框架之一,其安装过程确实比传统CV库复杂些&#…...

终极指南:5个简单步骤让魔兽争霸3在现代电脑上完美运行

终极指南:5个简单步骤让魔兽争霸3在现代电脑上完美运行 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款专为魔兽争霸…...

ARM MHU寄存器架构与核间通信优化指南

1. ARM MHU寄存器架构概述在ARM多核处理器架构中,MHU(Message Handling Unit)是实现核间通信的关键硬件模块。作为专门优化的消息传递单元,MHU通过精心设计的寄存器组实现了高效的数据传输和中断管理机制。不同于传统的共享内存通…...

深度解析Thorium浏览器:Chromium性能优化的终极实战指南

深度解析Thorium浏览器:Chromium性能优化的终极实战指南 【免费下载链接】thorium Chromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, links are towards the top of t…...

JetBrains IDE 试用期重置指南:3种简单方法恢复30天免费使用

JetBrains IDE 试用期重置指南:3种简单方法恢复30天免费使用 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否曾经在紧张的项目开发中,突然发现你的 JetBrains IDE(如 Int…...

ncmdumpGUI:解锁网易云音乐ncm加密格式的图形化解决方案

ncmdumpGUI:解锁网易云音乐ncm加密格式的图形化解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 在数字音乐的世界里,格式兼容性…...

嵌入式追踪路由器(ETR)内存数据解码实战指南

1. 嵌入式追踪路由器(ETR)内存数据解码实战指南在嵌入式系统调试中,获取处理器执行踪迹(trace)是诊断复杂问题的关键手段。CoreSight SoC-600架构中的Trace Memory Controller(TMC)通过Embedded Trace Router(ETR)组件,可以将ATB(Advanced Trace Bus)追踪…...

【智能算法】长鼻浣熊优化算法(COA)实战:从自然行为到工程优化

1. 长鼻浣熊优化算法(COA)初探 第一次听说长鼻浣熊优化算法(COA)时,我正为一个工业参数优化问题头疼不已。传统遗传算法在这个问题上陷入了局部最优,粒子群优化又收敛得太快。直到看到2023年M Dehghani团队…...

SpringBoot3 + ShardingJDBC读写分离进阶:如何用AOP实现强制走主库(@Master注解实战)

SpringBoot3 ShardingJDBC读写分离进阶:如何用AOP实现强制走主库(Master注解实战) 在分布式数据库架构中,读写分离是提升系统吞吐量的常见方案。但当你的SpringBoot3应用已经配置好ShardingJDBC的基础读写分离功能后,…...

如何快速解锁WeMod高级功能:面向游戏玩家的完整免费方案

如何快速解锁WeMod高级功能:面向游戏玩家的完整免费方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否为WeMod免费版的诸多限制感到…...

基于Adafruit与CircuitPython的交互式光剑:从硬件选型到3D打印全流程解析

1. 项目概述:打造一把会“呼吸”的交互式光剑几年前,当我第一次在游戏里挥动《塞尔达传说》中的大师之剑时,就被那种兼具力量感与神圣感的视觉效果深深吸引。作为一个硬件创客,我一直在想,能不能把这种虚拟的体验带到现…...

服务器训练过程程序崩溃,显卡资源释放方式

使用服务器训练过程出现程序崩溃,但是显卡资源未能释放的问题解决方式,主要是多卡使用过程,不能影响其他人正在使用的显卡资源。一、查看显卡使用情况 查看显卡正在使用的进程 watch nvidia-smi| NVIDIA-SMI 580.126.09 Driver V…...

量子优化技术在工业数据生产规划中的应用与实践

1. 量子优化技术在工业数据生产规划中的实践探索在汽车制造领域,生产规划一直是个复杂难题。以冲压车间为例,金属板材需要通过冲压机加工成车身部件,每台冲压机都有不同的工作能力和成本特性,而每个模具组又需要分配到合适的机器上…...

Armv9 SME2架构下BFloat16计算优化与机器学习加速

1. SME2指令集与BFloat16计算优化解析在Armv9架构的SME2扩展中,BFloat16(简称BF16)支持成为机器学习加速的关键特性。这种16位浮点格式通过截断IEEE 754单精度浮点的尾数位(从23位减至7位),同时保留完整的8…...

什么制造业电子数据交换(EDI)软件?|应用现状以及发展趋势

一、什么是电子数据交换(EDI)软件电子数据交换(EDI),是制造企业之间按照行业标准,自动完成业务数据传输的数字化工具。EDI软件能够将订单、预测、发货、发票、物料主数据等信息,在企业ERP、MES、…...