网页设计与网站开发教程,国内咨询公司排名前十名,中国最好的外贸公司,织梦可以做论坛网站就是将两个矩阵进行拼接#xff0c;两矩阵可以旋转90 180 270 度。
因为数据比较小#xff0c;所以这基本上就是一个大的枚举模拟加搜索#xff0c;直接暴力求解。
import java.io.*;
import java.util.*;public class Main{static int n;static int N 101;static int mo…
就是将两个矩阵进行拼接两矩阵可以旋转90 180 270 度。
因为数据比较小所以这基本上就是一个大的枚举模拟加搜索直接暴力求解。
import java.io.*;
import java.util.*;public class Main{static int n;static int N 101;static int mod (int)1e9 7;static StreamTokenizer stt new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));static BufferedWriter bw new BufferedWriter(new OutputStreamWriter(System.out));static BufferedReader br new BufferedReader(new InputStreamReader(System.in));static int[][] f {{-1, 0}, {0, 1}, {1, 0}, {0, -1}};
// static int[][] ff {{0, -1, 0}, {0, 0, 1}, {0, 1, 0}, {0, 0, -1}, {1, 0, 0}, {-1, 0, 0}};
// static int[] month {0, 31,28,31,30,31,30,31,31,30,31,30,31};static int[][] o new int[N][N];static int[][] p new int[N][N];static int[][] m new int[3 * N][3 * N];static int maxi;private static int dfs(int x, int y) {int k 1;m[x][y] 0;for(int i 0; i 4; i ) {int nx x f[i][0], ny y f[i][1];if(nx 1 || nx 3 * n || ny 1 || ny 3 * n || m[nx][ny] 0) continue;k dfs(nx, ny);}return k;}private static void draw(int bx, int by, int[][] o2) {for(int i bx, ii 1; ii n; ii , i ) {for(int j by, jj 1; jj n; jj , j ) {m[i][j] o2[ii][jj];}}}static void asd(int x, int y) throws IOException {// 在地图上画o矩阵draw(n 1, n 1, o);// 在地图上画p矩阵draw(x, y, p);// 分别枚举o矩阵和p矩阵所有的1进行深搜for(int i 1; i n; i ) {for(int j 1; j n; j ) {int nx i n, ny j n;if(m[nx][ny] 1)maxi Math.max(maxi, dfs(nx, ny));}}for(int i 1; i n; i ) {for(int j 1; j n; j) {int nx i x - 1, ny j y - 1;if(m[nx][ny] 1) maxi Math.max(maxi, dfs(nx, ny));}}}private static void sov() throws IOException {// 在一个三倍大的地图中枚举p矩阵的坐上角顶点默认o在中心的n阶矩阵位置for(int i 1; i 2 * n 1; i ) {asd(1, i);asd(2 * n 1, i);asd(i, 1);asd(i, 2 * n 1);}}static void rotate() {int[][] s new int[N][N];for(int i 1; i n; i ) {for(int j 1; j n; j ) {s[j][n - i 1] o[i][j];}}for(int i 1; i n; i ) {for(int j 1; j n; j ) {o[i][j] s[i][j];}}}static void sovle() throws Exception {n readInt();for(int i 1; i n; i ) {for(int j 1; j n; j ) {o[i][j] readInt();}}for(int i 1; i n; i ) {for(int j 1; j n; j ) {p[i][j] readInt();}}maxi 0;
// rotate();
// for(int i 1; i n; i ){
// for(int j 1; j n; j ) {
// bw.write(o[i][j] );
// }
// bw.write(\n);
// }for(int i 0; i 4; i ) {// 旋转o矩阵rotate();// 拼接两矩阵求解sov();}bw.write(maxi \n);}public static void main(String args[]) throws Exception {int t 1;
// t Integer.parseInt(br.readLine());
// t readInt();while((t --) 0) {
// while((n Integer.parseInt(br.readLine())) ! 0) {sovle();}bw.flush();bw.close();}static int readInt() {try {stt.nextToken();} catch (IOException e) {e.printStackTrace();}return (int)stt.nval;}
}