蓝桥杯(全球变暖dfs)
[code]import java.util.Scanner;/** * 该题使用了深度优先算法dfs用于把相连的#号当成一块大陆,并通过数组记录下有几块大陆 * dfs算法并不难,只要对用dfs处理过后留下的aes数组和sea数组进行处理得到结果即可 * 我的思路就是 * 1、sea数组记录源数据,然后判断是否被淹赋‘*’号记录 * 2、aes数组使用dfs算法把第一块大陆标记为1,第二块标记为2,以此类推 * 3、最后假设num块大陆全部被淹,遍历sea数组如果有‘#’号则判断是第几块大陆,没有重复就使num减一 * 4、最后输出num为最终结果 */public class test1 { static char[][] sea;//用于记录用例 static int[][] aes;//用于记录不同的大陆,其值为不同大陆的标记 static int n;//输入的初值 static int num=0;//最后被淹没的大陆数量 public static void main(String[] args) { Scanner scan = new Scanner(System.in); n = scan.nextInt(); sea = new char[n][n]; aes = new int[n][n]; //初始化sea for(int i=0;i |