标题:整理玩具

小明有一套玩具,一共包含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. IntPtr to bytes
  2. R语言format函数保留几位小数实战
  3. 如何构建一个分布式爬虫:理论篇
  4. Fragment滑动切换简单案例
  5. c#完美截断字符串(中文+非中文)
  6. 免费开源B2C电商系统:(ShopXO无需授权,即可商用)- 入门篇
  7. 纯js分页代码(简洁实用)
  8. java 减法基础_java基础之运算符
  9. fiddler和F12的区别
  10. 利用 Zabbix 监控数据库文件大小
  11. 【Unity3D插件】AnyPortrait插件分享《(二)制作角色动画》
  12. 一文读懂物联网的关键技术有什么?
  13. 【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part1项目介绍与环境准备
  14. 如何解决High Sierra 10.13.6 系统iCloud无法连接的问题?
  15. SpringCLoud实战微服务之——微服务简介以及入门使用
  16. 小程序公众号的微信支付0.2%费率商户号是怎么降低的?
  17. Amazon 邮箱大全
  18. 云流量成为数据中心的王者 五年内全球超大规模IDC将不断出现
  19. infoGAN公式推导(信息最大化生成对抗网络(理论部分))
  20. WINDOWS编程学习笔记(四)

热门文章

  1. 怎样给视频添加自定义的封面
  2. VMware Workstation Pro 12.5.7虚拟机安装 MAC OS X El Capitan 10.11.1 (15B42).cdr懒人版
  3. 关于后台事件中(object sender, EventArgs e)说明
  4. 吃在陕南 好客陕南欢迎您_陕南赤子_新浪博客
  5. 2023校园招聘求职报告
  6. 一款精美的红色农家乐美食客房旅馆模板源码 v4.2
  7. python批量将excel转成pdf_使用Python转换PDF,Word/Excel/PPT/md/HTML都能转!
  8. FIFA 19 complete player dataset(FIFA 19完整球员数据集)
  9. 【MATLAB教程案例51~67总结】MATLAB人工智能类算法仿真经验和技巧总结
  10. python实现自动化鼠标点击