消除类游戏解题思路(ccf 201512-2)

问题描述
  消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。
  现在给你一个n行m列的棋盘,棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。
  请注意:一个棋子可能在某一行和某一列同时被消除。
输入格式
  输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。
  接下来n行,每行m个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。
输出格式
  输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。
样例输入
4 5
2 2 3 1 2
3 4 5 1 4
2 3 2 1 3
2 2 2 4 4
样例输出
2 2 3 0 2
3 4 5 0 4
2 3 2 0 3
0 0 0 4 4
样例说明
  棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。
样例输入
4 5
2 2 3 1 2
3 1 1 1 1
2 3 2 1 3
2 2 3 3 3
样例输出
2 2 3 0 2
3 0 0 0 0
2 3 2 0 3
2 2 0 0 0
样例说明
  棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。
评测用例规模与约定
  所有的评测用例满足:1 ≤ n, m ≤ 30。

分析

对二维数组的每一行,每列进行如下考察:
假设对于第一行:
设count初始为1,从第二个元素开始,如果和前一个元素相等count++,如果和前一个元素不等,看count是否大于等于3,如果不是,count重新赋值为1,如果是,使用一个map,记录下连在一起的元素,map的key是整数,保存行号,值是个list,保存该行连在一起的列号。
对于每列,做类似处理。
最后,根据map,重新对二维数组赋值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

指针乐园----上

大家好,我是Beilef,许久未见还请多多关照。 文章目录 目录 文章目录 前言 一、指针是什么 二、指针的运用 1.指针变量和地址 2.指针变量和解引⽤操作符(*) 解引用操作符 3.指针变量类型及意义 3.2指针的-整数 3.3 void* 指针 …

Android13 framework层添加关机接口

framework层修改: t0_sys/frameworks/base/core/api/current.txt method RequiresPermission(android.Manifest.permission.REBOOT) public void reboot(Nullable String);method public void rebootp();t0_sys/frameworks/base/core/java/android/os/IPowerManager…

docker-compose Install Dockge

Dockge Dockge 是一个精美的、易于使用的、反应式的自托管 docker compose.yaml 面向堆栈的管理器。 主要特性: 通过Web页面管理compose.yaml文件。 创建/编辑/启动/停止/重新启动/删除容器。更新Docker镜像。交互式Web终端。响应式设计,实时更新进度(Pull/Up/Down)和Web…

C++搜索二叉树的实现

搜索二叉树的实现 keykey-value测试用例 key namespace key{ template<class k> struct BSTreeNode {BSTreeNode<k>* _left;BSTreeNode<k>* _right;k _key;BSTreeNode(const k& key):_left(nullptr),_right(nullptr),_key(key){}};template <class k…

学习经验心得体会

学习经验心得体会 自从踏入学习的殿堂&#xff0c;我深知知识如同海洋&#xff0c;无边无际。多年的学习经历&#xff0c;使我积累了丰富的经验&#xff0c;也对学习有了更深入的理解。在此&#xff0c;我愿将我的学习经验心得体会分享给大家&#xff0c;希望能对正在探索知识…

01-Linux系统概述,安装网络和防火墙配置

Linux系统概述&#xff0c;安装网络和防火墙配置 unix概述 Unix 是在1969年美国贝尔实验室的 肯.汤普森开发出来的一款操作系统&#xff0c;什么是操作系统&#xff1f;大家正在玩的 Windows 和 Max OS就是两个操作系统。操作系统是用户和计算机的接口&#xff0c;同时也是计…

Win11桌面出现的这个图标“了解此图片”怎么关闭?

&#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是尘觉&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力&#x1f609; 在csdn获奖荣誉: &#x1f3c6;csdn城市之星2名 ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ …

第3章---初始化AttributeSet文件

文件结构&#xff1a; 更改文件将高亮显示 Source Private AbilitySystemComponen RPGAbilitySystemComponent.cppRPGAttributeSet.cpp Character PGGameCharacterBase.cppRPGGameEnemy.cppRPGGamePlayerCharacter.cpp Game RPGGameModeBase.cpp Interaction EnemyInterface…

c++的STL(1) -- STL概述

STL(Standard Template Library), 意思为标准模版库。 STL主要分为三个部分: 容器&#xff0c; 算法&#xff0c; 迭代器。 algorithm&#xff08;算法&#xff09; - 对数据进行处理&#xff08;解决问题) 步骤的有限集合container&#xff08;容器&#xff09; - 用…

Java开发手册,java高并发高可用面试题

前言 今年我也33了&#xff0c;离传说中不好找工作的35岁又更近了。说没有焦虑是对自己撒谎&#xff0c;于是我采访了一些人&#xff0c;自己思考了下&#xff0c;写下了这篇文章&#xff0c;希望能有些共鸣。 先看看大家的态度&#xff1a; 色老力衰&#xff0c;不好忽悠&a…

Spring全家桶面试题-学习自测

Spring相关面试题&#xff1f; Bean的实例化和Bean的初始化有什么区别&#xff1f;什么是AOP、能做什么&#xff1f;有哪些常见的概念名称&#xff1f;它和AsepctJ有什么区别&#xff1f;Spring中的事务是如何实现的&#xff1f;Spring的传播机制有哪些&#xff0c;底层是如何…

rt-thread uart驱动

uart驱动描述基于GD32F470芯片。 rt-thread提供了一套I/O设备模型&#xff0c;如果想要使用操作系统的驱动去进行操作&#xff0c;就得将具体芯片的硬件驱动注册到设备驱动框架上。 关于rt-thread的I/O设备模型相关内容可以参考 rt-thread I/O设备模型-CSDN博客文章浏览阅读55…

vue命令行

书接上回&#xff0c;一直没能将vue-shop-master项目启动&#xff0c;还是停留在命令行&#xff0c;现参考链接如下&#xff0c; https://blog.csdn.net/jieyucx/article/details/127915699 止步不前了&#xff0c;晚上再摸索吧&#xff0c;搞电商去。。。。溜了溜了&#x…

MySQL进阶之(四)InnoDB数据存储结构之行格式

四、InnoDB数据存储结构之行格式 4.1 行格式的语法4.2 COMPACT 行格式4.2.1 记录的额外信息01、变长字段长度列表02、NULL 值列表03、记录头信息 4.2.2 记录的真实数据 4.3 Dynamic 和 Compressed 行格式4.3.1 字段的长度限制4.3.2 行溢出4.3.3 Dynamic 和 Compressed 行格式 4…

nodejs google search console api对接之提交网址到索引

推荐一款AI网站&#xff0c; AI写作与AI绘画智能创作平台 - 海鲸AI | 智能AI助手&#xff0c;支持GPT4设计稿转代码 要使用 Node.js 通过 Google Search Console API 添加网址&#xff08;即提交网址到索引&#xff09;&#xff0c;你需要遵循以下步骤&#xff1a; 设置Google…

【Flutter 】get-cli init报错处理

报错内容 get init 命令跳出,报错内如下 Select which type of project you want to creat Synchronous waiting using dart:cli waitFor Unhandled exceotion . Dart WaitforEvent is deprecated and disabled by default. This feature will be fully removed in Dart 3.4 …

【定岗定编】某度假村酒店客房部定岗定编管理咨询项目纪实

该度假村酒店由于地域广阔&#xff0c;将客服部分为了四个不同区域&#xff0c;这样就导致了在不同的区域员工的接待量不均衡的状况&#xff0c;引起了员工的强烈不满。如何合理地配置客户部人员以及如何合理地鉴定员工的工作量成为该酒店所面临的两大难题。让我们来看看在人力…

C语言——assert函数

目录 深入了解C语言中的assert函数 assert函数的基本用法 assert函数的工作原理 示例代码 总结 深入了解C语言中的assert函数 在C语言中&#xff0c;assert函数是一个非常有用的调试工具&#xff0c;用于在程序中插入断言&#xff0c;以便在运行时检查特定条件是否满足。如…

vulhub中ThinkPHP5 SQL注入漏洞 敏感信息泄露

漏洞原理 传入的某参数在绑定编译指令的时候又没有安全处理&#xff0c;预编译的时候导致SQL异常报错。然而thinkphp5默认开启debug模式&#xff0c;在漏洞环境下构造错误的SQL语法会泄漏数据库账户和密码 启动后&#xff0c;访问http://your-ip/index.php?ids[]1&ids[]2…

即插即用篇 | YOLOv8 引入 NAM 注意力机制 | 《NAM: Normalization-based Attention Module》

论文名称:《NAM: Normalization-based Attention Module》 论文地址:https://arxiv.org/pdf/2111.12419.pdf 代码地址:https://github.com/Christian-lyc/NAM 文章目录 1 原理2 源代码3 添加方式4 模型 yaml 文件template-backbone.yamltemplate-small.yamltemplate-large…