标题:整理玩具

小明有一套玩具,一共包含NxM个部件。这些部件摆放在一个包含NxM个小格子的玩具盒中,每个小格子中恰好摆放一个部件。

每一个部件上标记有一个0~9的整数,有可能有多个部件标记相同的整数。

小明对玩具的摆放有特殊的要求:标记相同整数的部件必须摆在一起,组成一个矩形形状。

如以下摆放是满足要求的:

00022
00033
44444

12244
12244
12233

01234
56789

以下摆放不满足要求:

11122
11122
33311

111111
122221
122221
111111

11122
11113
33333

给出一种摆放方式,请你判断是否符合小明的要求。

输入

输入包含多组数据。
第一行包含一个整数T,代表数据组数。 (1 <= T <= 10)
以下包含T组数据。
每组数据第一行包含两个整数N和M。 (1 <= N, M <= 10)
以下包含N行M列的矩阵,代表摆放方式。

输出

对于每组数据,输出YES或者NO代表是否符合小明的要求。

【样例输入】
3
3 5
00022
00033
44444
3 5
11122
11122
33311
2 5
01234
56789

【样例输出】
YES
NO
YES

资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
不要使用package语句。不要使用jdk1.7及以上版本的特性。
主类的名字必须是:Main,否则按无效代码处理。

解题思路:记录下首次出现这个数字的坐标和最后一次出现的坐标,算出如果是矩形,应该出现多少次,进行比较即可。(用TreeSet记录出现的数字,用来去重)


import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;public class ZhengLiWnaJu {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc=new Scanner(System.in);int T=sc.nextInt();for (int i = 0; i < T; i++) {int n=sc.nextInt();int m=sc.nextInt();int[][] arr=new int[n][m];TreeSet<Integer> ts=new TreeSet<Integer>();//录入数据for (int j = 0; j < n; j++) {String s=sc.next();for (int k = 0; k < s.length(); k++) {//System.out.println("K:"+k+"j:"+j);arr[j][k]=s.charAt(k)-48;
//                  System.out.println(arr[j][k]);ts.add(arr[j][k]);}   }boolean flag=true;//遍历判断for (int x : ts) {if(!jilu(x,arr))flag=false;
//              System.out.println(flag);}if(flag)System.out.println("YES");elseSystem.out.println("NO");}}public static boolean jilu(int x,int[][] arr) {boolean flag=true;//首坐标int a1=0;int a2=0;//末尾坐标int b1=0;int b2=0;int GeShu=0; //数字总出现个数for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {if(flag&&x==arr[i][j]) {a1=i;a2=j;flag=false;
//                  System.out.println("a1:"+a1+"a2:"+a2);}if(x==arr[i][j]) {b1=i;b2=j;
//                  System.out.println("b1:"+b1+"b2:"+b2);GeShu++;}
//              System.out.println("x:"+x+"arr:"+arr[i][j]);}}//进行判断if(a1==b1&&GeShu==(b2-a2+1)) {return true;}else if(a2==b2&&GeShu==(b1-a1+1))return true;else if(GeShu==((b1-a1+1)*(b2-a2+1)))return true;elsereturn false;}}

整理玩具 第九届蓝桥杯决赛第四题 java实现相关推荐

  1. 第九届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)

    目录 测试数据下载地址: 标题:年龄问题 标题:海盗与金币 标题:全排列 标题:约瑟夫环 标题:交换次数 标题:自描述序列 测试数据下载地址: [https://download.csdn.net/d ...

  2. 第九届 蓝桥杯 决赛 交换次数

    问题描述 IT产业人才需求节节攀升.业内巨头百度.阿里巴巴.腾讯(简称BAT)在某海滩进行招聘活动. 招聘部门一字排开.由于是自由抢占席位,三大公司的席位随机交错在一起,形如: ABABTATT,这使 ...

  3. 2018第九届蓝桥杯-决赛-Java大学-C组

    标题:年龄问题 s夫人一向很神秘.这会儿有人问起她的年龄,她想了想说: "20年前,我丈夫的年龄刚好是我的2倍,而现在他的年龄刚好是我的1.5倍". 你能算出s夫人现在的年龄吗? ...

  4. c语言中猴子拿香蕉的代码题,猴子分香蕉(2018年第九届蓝桥杯省赛第二题)

    ```java /** * 标题:猴子分香蕉 5只猴子是好朋友,在海边的椰子树上睡着了.这期间,有商船把一大堆香蕉忘记在沙滩上离去. 第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份 ...

  5. 2018第九届蓝桥杯省赛真题 C语言B组 第一题

    标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 答案:125 可以被四百整除,所以是闰年,二 ...

  6. problem b: 一年中的第几天_第九届蓝桥杯B组试题

    1. 标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. "============= ...

  7. 全球变暖java_Java实现第九届蓝桥杯全球变暖

    全球变暖 题目描述 你有一张某海域NxN像素的照片,"."表示海洋."#"表示陆地,如下所示: ....... .##.... .##.... ....##. ...

  8. 关于2018年第九届蓝桥杯省赛(江苏赛区)

    为啥到现在才写呢...就是懒,是真的懒.题也没刷几个 (下面题目的超链接转自这里,并不是本人解法..只是因为有题目还有题解) 4.1举行的蓝桥杯也可以说是"愚人杯"了 早早的跟同学 ...

  9. 使用JavaScript解答2018第九届蓝桥杯C/C++省赛A组试题

    大三时参加过第七届蓝桥杯个人赛及团队赛,转眼已经两年,最近看了看第九届蓝桥杯试题,打算用JavaScript实现一下. 题目1 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ...

最新文章

  1. java爬虫面试题_使用Java实现网络爬虫
  2. 秘鲁农业谋定出口-国际农民丰收节贸易会:期待对华准入
  3. 音视频PaaS的“未毕之旅”
  4. ArcGIS Engine 10.2开发环境搭建
  5. 在Spring中使用Asciidoctor:使用Spring MVC渲染Asciidoc文档
  6. MySQL 我们来聊聊 count(*) 语句的优化方式有哪些?
  7. 进程调度 操作系统第二章知识点归纳总结
  8. 京东6月18日正式登陆港交所 港股暗盘开涨超7%
  9. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 10课
  10. MySQL 创建数据库并且指定编码
  11. CentOS 6.5下安装Docker
  12. Python爬取链家成都二手房源信息 asyncio + aiohttp 异步爬虫实战
  13. 【202209秋招软开银行面试C++】
  14. Entity Framework 基础知识走马观花
  15. 使用华为手机怎么从网上打印资料?
  16. 炎黄盈动易鲸云低代码平台,全面助推企业数字化转型升级
  17. python生成递归json_python函数、递归、json模块操作
  18. 移动端vue+vant+高德地图实现拖拽选址,周边选址,搜索选址,自动定位,选择城市功能,获取地址经纬度,详细地址
  19. Android连接多个usb,Android实现USB连接
  20. linux的掩码长度,Bash 实现子网掩码与前缀长度互转

热门文章

  1. java menuitem 乱码_MenuItem 显示中文乱码问题的解决方案
  2. 测试幸运指数的软件,测你2017的幸运指数
  3. JavaScript写的对对碰游戏
  4. python 阻止锁屏_Python我用干什么之:锁屏单词壁纸
  5. 如何清洗键盘里的灰尘 清洗键盘灰尘方法
  6. 【天光学术】网络工程论文:网络工程实践中安全技术的应用(节选)
  7. 限时免费学习课程内容:亚马逊云科技云概念、亚马逊云科技服务、安全性、架构。
  8. Cesium实现一材质多贴图,一个模型多张贴图,自定义attribute
  9. 计算机网络知识体系(更新中)
  10. Redis 守护进程