问题描述

  消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有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。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=30+2;
const int M=30+2;
int a[N][M],n,m;
bool b[N][M]; //用来标记
int main()
{memset(b,false,sizeof(b));scanf("%d%d",&n,&m);for(int i=0;i<n;i++)for(int j=0;j<m;j++)scanf("%d",&a[i][j]);for(int i=0;i<n;i++) //标记列消除 for(int j=1;j<m-1;j++)if(a[i][j-1]==a[i][j]&&a[i][j+1]==a[i][j])b[i][j-1]=b[i][j]=b[i][j+1]=true;for(int j=0;j<m;j++) //标记行消除 for(int i=1;i<n-1;i++)if(a[i-1][j]==a[i][j]&&a[i+1][j]==a[i][j])b[i-1][j]=b[i][j]=b[i+1][j]=true;for(int i=0;i<n;i++) //消除 for(int j=0;j<m;j++)if(b[i][j]) a[i][j]=0;for(int i=0;i<n;i++) //输出 {for(int j=0;j<m-1;j++)printf("%d ",a[i][j]);printf("%d\n",a[i][m-1]);}return 0;
}

CCF系列题解--2015年12月第二题 棋类消除相关推荐

  1. CCF系列题解--2015年12月第三题 ASCII字符画

    问题描述 用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ASCII Art 的艺术.例如,下图是用 ASCII 字符画出来的 CSPRO 字样. ..____.____..____. ...

  2. CCF系列题解--2016年9月第二题 火车购票

    问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...

  3. CCF系列题解--2015年3月第三题 节日

    问题描述 有一类节日的日期并不是固定的,而是以"a月的第b个星期c"的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日. 现在,给你a,b,c和y1, y2(1850 ≤ ...

  4. CCF系列题解--2017年12月第三题 Crontab

    样例输入 3 201711170032 201711222352 0 7 * * 1,3-5 get_up 30 23 * * Sat,Sun go_to_bed 15 12,18 * * * hav ...

  5. CCF系列题解--2016年12月第三题 权限查询

    问题描述 授权 (authorization) 是各类业务系统不可缺少的组成部分,系统用户通过授权机制获得系统中各个模块的操作权限. 本题中的授权机制是这样设计的:每位用户具有若干角色,每种角色具有若 ...

  6. CCF系列题解--2013年12月第四题 有趣的数字

    问题描述 我们把一个数称为有趣的,当且仅当:        1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次.        2. 所有的0都出现在所有的1之前,而所有的2都出现 ...

  7. CCF系列题解--2018年3月第三题 URL映射

    问题描述 URL 映射是诸如 Django.Ruby on Rails 等网页框架 (web frameworks) 的一个重要组件.对于从浏览器发来的 HTTP 请求,URL 映射模块会解析请求中的 ...

  8. CCF系列题解--2016年9月第四题 交通规划

    问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统. 建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路. ...

  9. CCF系列题解--2016年4月第四题 方格游戏

    问题描述 小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列. 方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控 ...

最新文章

  1. Python多继承基础
  2. Android MVC模式
  3. CentOS7 命令行变成-bash-4.2$
  4. 回味颜宁演讲:“勇敢做独一无二的你”
  5. Vue 高效清空表单,一键清空表单
  6. 决策树留一法python代码_ScikitLearn决策树算法类库使用小结
  7. 赛锐信息:优化SAP系统运行时的建议
  8. pg日期转周_postgres日期格式转换
  9. 在Eclipse中如何快速的计算代码量
  10. 《麦肯锡方法》读书笔记15
  11. 下载Python OpenCV相关资料方法整理
  12. E php短信平台接口
  13. 邮件客户端开源_5个最佳开源环境电子邮件客户端
  14. 详解sklearn——CountVectorizer
  15. coward的个人简介
  16. 用python,重温小时候猜数字大小游戏
  17. 从新手到专家:如何设计一套亿级消息量的分布式IM系统
  18. 宅家羊毛党是怎么做到月入上万的
  19. 2016一周年点滴收获总结——遇见Elixir
  20. picasso加载图片

热门文章

  1. 锐捷客户端-您不在许可范围中,请确认您的权限
  2. oracle 11g失败,求助,oracle 11g 启动失败,求大神帮忙看看,谢谢
  3. 美团校招题 小团的装饰物
  4. 关于sdcard读写速率慢的问题排查
  5. php生成pdf中文断码_PHP生成PDF完美支持中文,解决TCPDF乱码
  6. [面试] 各大IT公司校园招聘程序猿笔试、面试题集锦
  7. 究竟是什么人在买爱马仕?
  8. mysql关联修改_MySQL语句修改之关联update语句用法
  9. MySQL 报错:Could not acquire management access for administration 不能正确登录怎么办?
  10. 【大数据】Hadoop (二) HDFS