题目如下:

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

这题思路比较简单,我们可以写一个检测函数func来测试一位数组中重复元素大于或等于3的情况。然后在主函数中分别对每列和每行执行func运算。

代码如下:

  1. #include<stdlib.h>
  2. #include<iostream>
  3. using namespace std;
  4. void func(int * s,int len){
  5. int count=;
  6. int i;
  7. for(i=;i<len-;i++){
  8. if(s[i]==s[i+]||(s[i]-)==s[i+]||s[i]==(s[i+]-)){
  9. count++;
  10. }else{
  11. if(count>=){
  12. for(int j=;j<=count;j++)
  13. {
  14. s[i-j]+=;
  15. }
  16. count=;
  17. }else{
  18. count=;
  19. }
  20. }
  21. }
  22. if(i==len-&&count>=){
  23. for(int j=;j<=count;j++)
  24. {
  25. s[i-j]+=;
  26. }
  27. }
  28. }
  29. int main()
  30. {
  31. int m,n;
  32. cin>>n>>m;
  33. int s[n][m];
  34. for(int i=;i<n;i++){
  35. for(int j=;j<m;j++){
  36. cin>>s[i][j];
  37. }
  38. }
  39. //-------------func--------------------
  40. for(int i=;i<n;i++)
  41. {
  42. func(s[i],m);
  43. }
  44. for(int i=;i<m;i++)
  45. {
  46. int temp[n];
  47. for(int j=;j<n;j++){
  48. temp[j]=s[j][i];
  49. }
  50. func(temp,n);
  51. for(int j=;j<n;j++){
  52. if(temp[j]>){
  53. s[j][i]=temp[j];
  54. }
  55. }
  56. }
  57. //------------------show result------------------
  58. for(int i=;i<n;i++){
  59. for(int j=;j<m;j++){
  60. if(s[i][j]>)
  61. {
  62. s[i][j]=;
  63. }
  64. cout<<s[i][j]<<" ";
  65. }
  66. cout<<endl;
  67. }
  68. return ;
  69. }

ccf题库中2015年12月2号消除类游戏的更多相关文章

  1. ccf题库中2016年4月2日俄罗斯方块问题

    题目如下: 问题描述 俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏. 游戏在一个15行10列的方格图上进行,方格图上的每一个格子可能已经放置了方块,或者没有放置方块.每一轮,都会有一个新 ...

  2. 我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)

    作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...

  3. 我的Python成长之路---第一天---Python基础(作业1:登录验证)---2015年12月26日(雾霾)

    作业一:编写登录接口 输入用户名密码 认证成功系那是欢迎信息 输错三次后锁定 思路: 1.参考模型,这个作业我参考了linux的登录认证流程以及结合网上银行支付宝等锁定规则 1)认证流程参考的是Lin ...

  4. 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

    2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...

  5. Network Real Trace Analysis 2015年12月10日

    了解网络中真实的流量,国内很难找到巨人的肩膀. WAND是新西兰waikato 大学计算机系的研究小组,主要做网络测量,大规模网络流量捕获,网络分析.还做专业的分析软件. libtrace是其开源的分 ...

  6. 2015年12月28日 Java基础系列(六)流

    2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流2015年12月28日 Java基础系列(六)流

  7. 2015年12月13日 spring初级知识讲解(四)面向切面的Spring

    2015年12月13日 具体内容待补充...

  8. 【C++】命令行Hangman #2015年12月15日 00:20:27

    增加了可以在构造Hangman对象时通过传入参数设定“最大猜测次数”的功能.少量修改.# 2015年12月15日 00:20:22 https://github.com/shalliestera/ha ...

  9. 第四组 12月8号sprint会议

    会议时间:12月8号,16:30会议地点:蛙鸣湖旁小树林 会议进程:   1.首先对到场人员进行点名   2.对程序主要功能进行讨论,每人都可以自由发言,然后分配每个成员的任务,并决定实现第一个功能: ...

随机推荐

  1. Hadoop项目开发笔录

    1.概要 我打算分享一下,我开发Hadoop的一些心得,对于即将步入Hadoop行业的童鞋,希望我整理的这些博文对您有帮助,我打算分为以下几部分来描述. 2.步骤 注:点击链接可直接跳到指定位置 Ha ...

  2. resin4.0.25 安装配置 及结合eclipse开发

    resin4.0.25 安装配置 及结合eclipse开发 本文大部分内容是对官网的翻译,及自己配置后的一些体会. 一.  基于win  ,resin基本安装1,安装jdk1.6或更高版本2,配置环境 ...

  3. Redis 内存模型

    了解 Redis 的 5 种对象类型(字符串.哈希.列表.集合.有序集合)的用法和特点的基础,了解 Redis 的内存模型,对 Redis 的使用有很大帮助,例如: 估算 Redis 内存使用量.内存 ...

  4. redhat 下搭建网站

    1.修改yum源 把iso重新挂载到/media路径下,media是个只读的文件 vi  /etc/yum.repos.d/rhel-source.repo            //编辑yum源文件 ...

  5. 关于setTimeout的的JS知识

    https://www.jianshu.com/p/3e482748369d?from=groupmessage

  6. [转]git操作指南

    [GIT上手篇]-1-基本操作(初始化仓库,添加.提交文件) 创建(初始化)一个GIT库 init 命令 说明:用于仓库的初始化 参数:--bare 创建一个纯仓库(不含缓存区和工作目录,服务器一般采 ...

  7. openWin和openFrame 设置透明背景

    openWin简单点说就是:像是一个浏览器 openFrame就是对应openWin浏览器里面打开的每一个网页 有些操作只能在openWin里面执行,比如监听安卓返回事件,只能在openWin里面才有 ...

  8. 前端迷思与React.js

    前端迷思与React.js 前端技术这几年蓬勃发展, 这是当时某几个项目需要做前端技术选型时, 相关资料整理, 部分评论引用自社区. 开始吧: 目前, Web 开发技术框架选型为两种的占 80% .这 ...

  9. [android] 手机卫士手机实现短信指令获取位置

    获取位置  新建一个service的包 新建一个GPSService类继承系统的Service类 清单文件中注册一下 重写onCreate()方法,服务创建的时候回调 重写onDestroy()方法, ...

  10. 【Json】1、JSON 数据格式

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易 ...