POJ 2965、再帰した!
1813 ワード
この問題は難しくなくて、多くの実現の方法があって、しかし問題の報告を見た後で、私は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];
}
}
}
}
}
}