import java.util.Scanner; /**  * 给定两个数组,分两行  *  * 第一行为分别为初始棋盘,为4*4矩阵,其中0表示白色棋子,1表示黑色棋子  *  * 第二行为翻转位置,其中翻转位置共有3个  */ public class Main {     static int[][] maze = new int[5][5];     static int[][] maze_reverse = new int[6][6];     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         String line1 = in.next();         String line2 = in.next();         int digit[] = new int[20];         int index = 0;         for(int i=0;i<line1.length();i++){             if(line1.charAt(i)=='0' || line1.charAt(i)=='1'){                 digit[index] = (line1.charAt(i)-'0');                 index ++;             }         }         int index1 = 0;         for(int i=1;i<=4;i++){             for(int j=1;j<=4;j++){                 maze[i][j]=digit[index1];                 index1++;             }         }         index = 0;         for(int i=0;i<line2.length();i++){             if(line2.charAt(i)>='0' && line2.charAt(i)<='9'){                 digit[index] = (line2.charAt(i)-'0');                 index ++;             }         }         index1=0;         while(index1 < index){             maze_reverse[digit[index1]][digit[index1+1]]=1;             index1+=2;         }         for(int i=1;i<=4;i++){             for(int j=1;j<=4;j++){                 if(maze_reverse[i][j] == 1){                     divide(i,j );                 }             }         }         index=0;         for(int i=1;i<=4;i++){             for(int j=1;j<=4;j++){                 digit[index++]=maze[i][j];             }         }         index1=0;         for(int i=0;i<line1.length();i++){             if(line1.charAt(i)>='0'&& line1.charAt(i)<='9'){                 System.out.print(digit[index1]);                 index1++;             }else{                 System.out.print(line1.charAt(i));             }         }     }     //[[0,1,1,1],[0,0,1,0],[0,1,1,0],[0,0,1,0]]     public static void divide(int x,int y){         if(x-1>=1){             maze[x-1][y]=1-maze[x-1][y];         }         if(x+1<=4){             maze[x+1][y]=1-maze[x+1][y];         }         if(y-1>=1){             maze[x][y-1]=1-maze[x][y-1];         }         if(y+1<=4){             maze[x][y+1]=1-maze[x][y+1];         }     } } 棋盘的。。。。暴力解决了。。。4*4懒得想算法了
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务