POJ 2965、再帰した!


この問題は難しくなくて、多くの実現の方法があって、しかし問題の報告を見た後で、私は1種を理解しました!ここにjavaコードを貼って参考にします!
import java.util.Scanner;

/*
 * 
             :
            4*4 16   ,           (     ,    ) ,       、                。      ,           。
       :  4×4   ,+    ,-    ;
     :                 ,          。
	+      
	-      
	  4*4                                
	       0     ,
	        1   
	               
 * 
 * */
public class poj2965 {
	static boolean[][] visited = new boolean[4][4];
	static char[][] map;
	static int[] is=new int[16];
	static int[] js=new int[16];
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		String[] old = new String[4];
		for (int i = 0; i < old.length; i++) {
			old[i] = sc.nextLine();
		}
		map = new char[4][4];
		for (int i = 0; i < old.length; i++) {
			map[i] = old[i].toCharArray();
		}
		caozuo(map);
		int count = 0;
		for (int i = 0; i < 4; i++) {
			for (int j = 0; j < 4; j++) {
				if (visited[i][j]) {
					is[count]=i+1;
					js[count]=j+1;
					count++;
				}
			}
		}
		System.out.println(count);
		for (int i = 0; i < count; i++) {
			System.out.println(is[i]+" "+js[i]);
		}
		
	}

	private static void sop(int[][] arr) {
		// TODO Auto-generated method stub
		for (int i = 0; i < 4; i++) {
			for (int j = 0; j < 4; j++) {
				System.out.print(arr[i][j]);
			}
			System.out.println();
		}
	}

	private static void caozuo(char[][] map) {
		// TODO Auto-generated method stub
		for (int i = 0; i < 4; i++) {
			for (int j = 0; j < 4; j++) {
				if (map[i][j] == '+') {
					visited[i][j] = !visited[i][j];
					for (int k = 0; k < 4; k++) {
						visited[i][k] = !visited[i][k];
						visited[k][j] = !visited[k][j];

					}
				}

			}
		}
	}

}