棋盘问题

这篇具有很好参考价值的文章主要介绍了棋盘问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【问题描述】

小蓝拥有 n × n 大小的棋盘,一开始棋盘上全都是白子。小蓝进行了m次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色,黑色棋子变为白色)。

请输出所有操作做完后棋盘上每个棋子的颜色。

【输入格式】

输入的第一行包含两个整数n,m,用一个空格分隔,表示棋盘大小与操作数。

接下来m行每行包含四个整数 X1,Y1,X2,Y2,相邻整数之间使用一个空格分隔,表示将在X1至X2行和Y1至Y2列中的棋子颜色取反。

【输出格式】

 输出n行,每行n个0或1表示该位置棋子的颜色。如果是白色则输出0,否则输出1。

【样例输入】

3 3
1 1 2 2
2 2 3 3
1 1 3 3

 

【样例输出】

001

010

100

【解题思路】

  • 用 Sanner scan = new Scanner (System.in) 会读取慢,有运行超时的样例。
  • 所以用 StreamTokenizer st = new StreamTokenizer(new BufferedReader(InputStreamReader(System.in)));
  • 数组默认初始化的值是0,可以不用初始化给棋盘赋值0。
    package 蓝桥;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.StreamTokenizer;
    
    public class _02棋盘 {
         private static final StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
    
            public static void main(String[] args) throws IOException {
    //            Scanner sc = new Scanner(System.in);
        //
    //            int n = sc.nextInt();
    //            int m = sc.nextInt();
                int n = next();
                int m = next();
                int[][] qipan = new int[n][n];//棋盘大小
                //不用初始化,数组默认初始值是0
    //            //初始化棋盘,全是白色
    //            for (int i = 0; i < qipan.length; i++) {
    //                for (int j = 0; j < qipan[0].length; j++) {
    //                    qipan[i][j] = 0;
    //                }
    ////            }
                for (int i = 0; i < m; i++) {
                    int x1, x2, y1, y2;
                    x1 = next();
                    y1 = next();
                    x2 = next();
                    y2 = next();
                    for (int j = x1 - 1; j < x2; j++) {
                        for (int k = y1 - 1; k < y2; k++) {
                            if (qipan[j][k] == 0) {
                                qipan[j][k] = 1;
                            } else {
                                qipan[j][k] = 0;
                            }
                        }
                    }
                }
                for (int j = 0; j < qipan.length; j++) {
                    for (int k = 0; k < qipan[j].length; k++) {
                        System.out.print(qipan[j][k]);
                    }
                    System.out.println();
                }
        //
    //            sc.close();
            }
    
    
            //通过BufferedReader、StreamTokenizer定义输入函数,避免输入数据超时
            private static int next() throws IOException {
                st.nextToken();
                return (int) st.nval;//nval读取double类型
    //            String s = in.sval;  //sval读取string类型
            }
    }

     文章来源地址https://www.toymoban.com/news/detail-767301.html

 
 

到了这里,关于棋盘问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何解决物流投诉问题,拥有更多的回头客?

    在电商物流中,客户投诉比较多的一块通常是配送延迟或派送问题。以下是一些可能导致此类问题的原因以及解决方法: 配送员数量不足或调度不合理: 电商企业可能面临配送员不足的情况,导致派送时间延长或出现派送失败等问题。解决方法可以是增加配送员数量,与第

    2024年02月13日
    浏览(32)
  • 【蓝桥杯选拔赛真题44】python小蓝晨跑 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

    目录 python小蓝晨跑 一、题目要求 1、编程实现 2、输入输出

    2024年02月06日
    浏览(48)
  • 《数据结构、算法与应用C++语言描述》-列车车厢重排问题

    完整可编译运行代码见:Github::Data-Structures-Algorithms-and-Applications/_10Train_carriages_rearrangement/ 一列货运列车有 n 节车厢,每节车厢要停靠在不同的车站。假设 n个车站从 1 到n 编号,而且货运列车按照从n到1的顺序经过车站。车厢的编号与它们要停靠的车站编号相同。为了便于从

    2024年04月10日
    浏览(61)
  • 基于硬件隔离增强risc-v调试安全1_问题描述

    安全之安全(security²)博客目录导读 2023 RISC-V中国峰会 安全相关议题汇总 说明:本文参考RISC-V 2023中国峰会如下议题,版权归原作者所有。   /

    2024年02月10日
    浏览(38)
  • ubuntu屏幕小的解决办法

    1. 安装vmware tools , 再点自适应客户机 执行里面的vmware-install.pl这个文件 :sudo ./vmware-install.pl 执行不了可以放到家目录,我放在了/home/book  里面 最后点这个自适应客户机 然后我这里点不了是因为我点了控制台视图和拉伸客户机,不过这个点了显示效果一点也不行 2. 这里可以

    2024年02月20日
    浏览(29)
  • 有序矩阵中第 K 小的元素

    有序矩阵中第 K 小的元素 每行和每列元素均按升序排序 找到一个内存复杂度优于 O(n²) 的解决方案 使用二分查找,思路为: (1)因为左上角的元素值更小,右下角的元素值更大,先将left设置为左上角元素的值,right设置为右下角元素的值; (2)判断不大于left和right中间值

    2024年01月20日
    浏览(66)
  • 数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)

    目录 问题描述  解题思路 伪代码  总体算法 DFS算法 伪代码解读 总体算法 DFS算法 具体实现(C语言) 在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑

    2024年02月05日
    浏览(73)
  • iOS17.4获取UDID安装mobileconfig描述文件失败 提示“安全延迟进行中”问题 | 失窃设备保护

    iOS17.4这两天已经正式发布, 在iOS 17.4版本中新增了一个名为\\\"失窃设备保护\\\"的功能,并提供了一个\\\"需要安全延迟\\\"的选项。 iOS17.4获取UDID安装mobileconfig描述文件失败 提示“安全延迟进行中”问题 | 失窃设备保护 当用户选择启用该功能时,在离开熟悉位置时,iPhone会延迟一段时

    2024年04月24日
    浏览(41)
  • Ubuntu18.04修改file descriptors(文件描述符限制),解决elasticsearch启动报错问题

    最近在学习elasticsearch,使用的平台是Ubuntu18.04,在部署过程中的坑记录一下。 下载安装的过程就不说了,在启动es的时候报错 1 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535] 看了下网上给的解决方案都是修改vim /etc/security/limits.conf,添加配置 1 2 * s

    2024年02月13日
    浏览(43)
  • P3956棋盘 ( dfs + 剪枝

    本质上来说并不是特别复杂的搜索,只不过这个搜索时要维护多个状态量,没怎么做过属于是 同时有一个剪枝就是维护走到 (i,j)的最短花费,大于这个花费就直接减掉

    2024年02月13日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包