蓝桥杯(全球变暖dfs)

打印 上一主题 下一主题

主题 946|帖子 946|积分 2838

蓝桥杯(全球变暖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
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

海哥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表