添加路障-蓝桥杯-DFS

在这里插入图片描述
自己另辟蹊径想的新思路 果然好像还是不太行呀

import java.util.Scanner;public class Main {static int T;//样例组数static int n;//矩阵大小static int[] X = {0,1,0,-1};static int[] Y = {1,0,-1,0};static int[] X1 = {1,0,-1,0};static int[] Y1 = {0,-1,0,1};static int flag = 0;public static void main(String[] args) {Scanner scan = new Scanner(System.in);T = scan.nextInt();while((T--)>0){n = scan.nextInt();char[][] arr = new char[n][n];int[][] vis = new int[n][n];for(int i = 0;i<n;i++){arr[i] =scan.next().toCharArray();}if(!dfs(0,0,vis,arr,n))//第一次就不通{System.out.println(0);}else{dfs1(0,0,vis,arr,n);//第二次标记int[][] vis1 = new int[n][n];if(dfs(0,0,vis1,arr,n)){System.out.println(2);}else{System.out.println(1);}}}}static boolean dfs(int x,int y,int[][] vis,char[][] arr,int n){if(arr[x][y] == 'C') return true;if(arr[x][y]!='A') vis[x][y] = 1;for(int i = 0;i<4;i++){int x1 = x + X[i];int y1 = y + Y[i];if(x1>=0&&x1<n&&y1>=0&&y1<n&&vis[x1][y1]==0&&arr[x1][y1]!='X'){if(dfs(x1,y1,vis,arr,n)) return true;}}return false;}static boolean dfs1(int x,int y,int[][] vis,char[][] arr,int n){if(arr[x][y] == 'C' ) return true;if(arr[x][y]!='A') vis[x][y] = 2;for(int i = 0;i<4;i++){int x1 = x + X1[i];int y1 = y + Y1[i];if(x1>=0&&x1<n&&y1>=0&&y1<n&&vis[x1][y1]==1&&arr[x1][y1]!='X'){arr[x1][y1] = 'X';return true;}if(x1>=0&&x1<n&&y1>=0&&y1<n&&vis[x1][y1]!=2&&arr[x1][y1]!='X'){if(dfs1(x1,y1,vis,arr,n)) return true;}}return false;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/525181.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java的参数传递机制(引用类型)

1.除了非引用类型的形参传递&#xff0c;还有引用类型的变量形参传递&#xff0c;但引用类型的形参变量传递与非引用类型是不同的&#xff01;&#xff01;&#xff01; public class MethodDemo2 {public static void main(String[] args) {int[] arr new int[]{10,20,30,9}…

基于PSO粒子群算法的三角形采集堆轨道优化matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 假设一个收集轨道&#xff0c;上面有5个采集堆&#xff0c;这5个采集堆分别被看作一个4*20的矩阵&#xff08;下面只有4*10&#xff09;&#xff0c;每个模块&…

阿里云一键登录(号码认证服务)

前言 用户登录原来的登录方式如下 1. 手机号验证码 2. 账号密码 运营觉得操作过于复杂, 因此想引入阿里自动登录的逻辑, 也就是号码认证服务,所以才有了这篇问文章 注: 本文只是记录Java端的实现, app端的请自行查询文档实现 官方资料 文档 : 什么是号码认证服务_号码认证服务(…

【数据分享】2000-2022年全国1km分辨率的逐日PM10栅格数据

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000-2022年全国范围逐日的PM2.5栅格数据和2013-2022年全国范围逐日SO2栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;。 本次我们给大家带来的是2000-2022年全国范围的逐日的PM10栅…

Vue:自动按需导入element-plus图标

自动导入使用 unplugin-icons 和 unplugin-auto-import 从 iconify 中自动导入任何图标集。 完整vite.config.js参考模板 https://download.csdn.net/download/ruancexiaoming/88928539 导入element-plus图标 命令行安装unplugin-icons pnpm i -D unplugin-icons//没有安装自…

保姆级讲解字符串函数(上篇)

目录 字符分类函数 导图 函数介绍 1.getchar 2. isupper 和 islower 字符转换函数&#xff1a;&#xff08;toupper , tolower&#xff09; 与 putchar 字符串函数 导图 string函数的使用和模拟实现 string的使用 求字符串长度 字符串的比较 string函数的模拟实现…

四桥臂三相逆变器动态电压恢复器(DVR)MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 简介 四桥臂三相逆变器 电路 的一般形式如图 1&#xff0c;为 便于分析 &#xff0c;将其等效成图所示的电路 。以直流母线电压Ud的 1&#xff0f;2处为参考点 &#xff0c;逆变器三相和零线相 输 出可等效成…

【FFmpeg】ffmpeg 命令行参数 ⑤ ( 使用 ffmpeg 命令提取 音视频 数据 | 保留封装格式 | 保留编码格式 | 重新编码 )

文章目录 一、使用 ffmpeg 命令提取 音视频 数据1、提取音频数据 - 保留封装格式2、提取视频数据 - 保留封装格式3、提取视频数据 - 保留编码格式4、提取视频数据 - 重新编码5、提取音频数据 - 保留编码格式6、提取音频数据 - 重新编码 一、使用 ffmpeg 命令提取 音视频 数据 1…

全网最最最详细centos7如何安装docker教程

在CentOS 7上安装Docker主要包括以下步骤&#xff1a; 1. 卸载旧版本的Docker 首先&#xff0c;需要确保系统上没有安装旧版本的Docker。可以通过以下命令来卸载它们&#xff1a; sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-late…

【已解决】无法删除自己上传在CSDN的资源怎么办?(2024亲测可用)

文章目录 1. 前情提要2. 实测过程3. 解决方案 1. 前情提要 我在 CSDN 上发布了一个免费资源&#xff0c;近几天却有粉丝反馈这个免费资源现在要开 VIP 才能下载&#xff0c;于是我想删除这个资源重新上传&#xff0c;但系统提示我没有权限&#xff0c;被下载过的资源无法删除&…

java-ssm-jsp-基于ssm的宠物领养系统的设计与实现

java-ssm-jsp-基于ssm的宠物领养系统的设计与实现 获取源码——》公主号&#xff1a;计算机专业毕设大全

AI给开发经验3-5年的程序员的一些建议

Q: 你是一名CTO&#xff0c;请你给开发经验3-5年的程序员一些职业和生活方面的建议&#xff0c;1500字。 A: 作为一名有着丰富经验的CTO&#xff0c;我深知程序员在职业道路上的成长并非一帆风顺。针对开发经验在3-5年的程序员&#xff0c;我想从职业和生活两个方面&#xff0…