棋盘问题

打印 上一主题 下一主题

主题 929|帖子 929|积分 2787

【问题描述】
小蓝拥有 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。

    1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4 import java.io.StreamTokenizer; 5 import java.util.Scanner; 6  7 public class Main { 8     private static final StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); 9 10     public static void main(String[] args) throws IOException {11 //        Scanner sc = new Scanner(System.in);12 //13 //        int n = sc.nextInt();14 //        int m = sc.nextInt();15         int n = next();16         int m = next();17         int[][] qipan = new int[n][n];//棋盘大小18 19 //        //初始化棋盘,全是白色20 //        for (int i = 0; i < qipan.length; i++) {21 //            for (int j = 0; j < qipan[0].length; j++) {22 //                qipan[j] = 0;23 //            }24 ////        }25         for (int i = 0; i < m; i++) {26             int x1, x2, y1, y2;27             x1 = next();28             y1 = next();29             x2 = next();30             y2 = next();31             for (int j = x1 - 1; j < x2; j++) {32                 for (int k = y1 - 1; k < y2; k++) {33                     if (qipan[j][k] == 0) {34                         qipan[j][k] = 1;35                     } else {36                         qipan[j][k] = 0;37                     }38                 }39             }40         }41         for (int j = 0; j < qipan.length; j++) {42             for (int k = 0; k < qipan[j].length; k++) {43                 System.out.print(qipan[j][k]);44             }45             System.out.println();46         }47 //48 //        sc.close();49     }50 51     private static int next() throws IOException {52         st.nextToken();53         return (int) st.nval;54     }55 }
 
  
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

道家人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表