实在是看不出哪错了,求大佬带
  • 板块P1683 入门
  • 楼主azhe_DaShu
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/4/1 12:20
  • 上次更新2023/10/23 19:49:58
查看原帖
实在是看不出哪错了,求大佬带
693079
azhe_DaShu楼主2023/4/1 12:20
package P1683;

import java.util.Scanner;

/**
 * @author azheChen
 * @E-mail: 2033244875@qq.com
 * @version 创建时间:2023-3-31 21:00:12
 * @声明
 */
public class Main {

	private static int W, H, most = -1;
	private static char[][] map = new char[21][21];
	private static int[][] temp = new int[21][21];
	private static int[] fx = { 1, 0, 0, -1 };
	private static int[] fy = { 0, 1, -1, 0 };

	public static void dfs(int i, int j, int now) {

		if (now > most) {
			most = now;
//			return;
		}
		for (int k = 0; k < 4; k++) {
			if (i + fx[k] >= 0 && (i + fx[k]) < W && j + fy[k] >= 0 && (j + fy[k]) < H 
					&& map[i + fx[k]][j + fy[k]] == '.'
					&& temp[i + fx[k]][j + fy[k]] == 0) {
				temp[i][j] = 1;
				dfs(i + fx[k], j + fy[k], now + 1);
				temp[i][j] = 0;
			} 
		}
		return;

	}

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		W = scanner.nextInt();
		H = scanner.nextInt();
		int f1 = 0, f3 = 0;
		for (int i = 0; i < H; i++) {
			String tempString = scanner.next();
			for (int j = 0; j < W; j++) {
				map[i][j] = tempString.charAt(j);
				temp[i][j] = 0;
				if (map[i][j] == '@') {
					f1 = i;
					f3 = j;
				}
			}
		}
		
//		for (int i = 0; i < H; i++) {
//			for (int j = 0; j < W; j++) {
//			System.out.print(map[i][j]);	
//			}
//			System.out.println();
//		}
		dfs(f1, f3, 1);
		System.out.println(most);
		scanner.close();
	}
}

2023/4/1 12:20
加载中...