问题描述
小蓝拥有 n xn 大小的棋盘,一开始棋盘上全都是白子。小蓝进行了 m 次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色,黑色棋子变为白色)请输出所有操作做完后棋盘上每个棋子的颜色。
输入格式
输入的第一行包含两个整数 n,m,用一个空格分隔,表示棋盘大小与操作数。
接下来 m 行每行包含四个整数 x1,y1,x2,y2,相邻整数之间使用一个空格分隔,表示将在x1至 x2 行和 y1至 y2 列中的棋子颜色取反。
输出格式
输出几行,每行几个0或1表示该位置棋子的颜色。如果是白色则输出 0,否则输出 1。

实现代码:
- import java.util.Scanner;
- // 1:无需package
- // 2: 类名必须Main, 不可修改
-
- public class Main {
- public static void main(String[] args) {
- Scanner scan = new Scanner(System.in);
- int n=scan.nextInt();
- int m=scan.nextInt();
- boolean[][] qp = new boolean[n][n];
- while(m-- > 0) {
- int x1=scan.nextInt();
- int y1=scan.nextInt();
- int x2=scan.nextInt();
- int y2=scan.nextInt();
- for(int i=x1-1; i
- for(int j=y1-1; j
- qp[i][j] = !qp[i][j]; //棋盘落子只有两种状态,这里用false和TRUE替代
- }
- }
- }
- for(int i=0; i
- for (int j=0; j
- if(qp[i][j] == true) System.out.print("1");
- else System.out.print("0");
- }
- System.out.println(""); //进行分行操作
- }
- scan.close();
- }
- }
蓝桥杯样例输入输出:

idea显示结果:

注意点:print,printf,println的区别
- public class com {
- public static void main(String[] args) {
- int a=9;
- String s="nihao";
- System.out.print(1); //输出一个参数,但不换行
- System.out.print("2");
- System.out.println(""); //输出一个参数,换行
- System.out.println("3");
- System.out.printf("数字是:%d,字符串是:%s",a,s); //可输出多个参数,不换行
-
- }
-
相关阅读:
【开题报告】基于Spring Boot的课程在线预约系统的设计与实现
websocket多实例推送解决方案-数据实时展示
机器学习-LightGBM算法分类器-附python代码
2024年移动端技术探索
手动构造感知机模型Perceptron(Numpy代码手写)
MFC Windows 程序设计[247]之多彩编辑框(附源码)
实战——Linux服务器CPU飙升原因排查
第六天 脚本与动画系统
【前端面试】(四)JavaScript var let const的区别
新媒体运营项目管理者的3款王炸软件
-
原文地址:https://blog.csdn.net/2202_75519246/article/details/136787334