当前位置: 首页 > wzjs >正文

成都科技网站建设费用wordpress破解汉化

成都科技网站建设费用,wordpress破解汉化,做网站用哪些软件,外贸招聘网站首先我们可以判断出这是一个dfs的题目,因为简言之就是要求最短路径。其次这个题目与直接找最短路径有所不同,增加了条件必须依次穿过指定的符号。无论坦克走到任何一点都有四个方向可以走(越界要判断),结束的条件是到达…

首先我们可以判断出这是一个dfs的题目,因为简言之就是要求最短路径。其次这个题目与直接找最短路径有所不同,增加了条件必须依次穿过指定的符号。无论坦克走到任何一点都有四个方向可以走(越界要判断),结束的条件是到达指定的终点。本题不难看出可以判断每次的步数,若已经大于目前的结果数据直接跳出循环(剪枝)。

①字符数组存储字符有

②接收起点x1,y1和终点x2,y2

③开始向前走

④判断结束条件,判断边界条件,判断是否已走过,判断交替条件

⑤如果满足条件,当前位置为true;进入递归

⑥回溯,退出循环

⑦剪枝

⑧调用函数输出结果

代码如下👇

	static int n;static int result=(int)1e9;static char[][] c;static boolean[][] b= new boolean[110][110];static int x1,x2,y1,y2;static int[] dx= {0,-1,1,0};static int[] dy= {1,0,0,-1};//四个方向static int[][]  arr=new int[1000][1000];//结果数组public static void dfs(int x,int y,int ans,char f) {if (ans>result) {return;}if (x==x2 && y==y2) {result=Math.min(ans, result);}for (int i = 0; i < 4; i++) {int x3=x+dx[i];int y3=y+dy[i];if (x3<1 || x3>n || y3<1 || y3>n) {continue;}if (b[x3][y3]) {continue;}if (c[x3][y3] == f) {continue;}b[x3][y3]=true;dfs(x3,y3,ans+1,c[x3][y3]);b[x3][y3]=false;//回溯精髓差点忘了}}public static void main(String[] args) {Scanner scan = new Scanner(System.in);n=scan.nextInt();scan.nextLine();c=new char[110][110];for (int i = 1; i <= n; i++) {String s=scan.nextLine();s=s.replaceAll(" ", "");for (int j = 0; j < n; j++) {c[i][j+1]=s.charAt(j);}}for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {if (c[i][j]=='A') {x1=i;y1=j;}if (c[i][j]=='B') {x2=i;y2=j;}}}
//		System.out.println(x1+" "+y1+" "+x2+" "+y2);
//		for (int i = 1; i <= n; i++) {
//			for (int j = 1; j <= n; j++) {
//				System.out.print(c[i][j]);
//			}
//			System.out.println();
//		}测试点dfs(x1,y1,0,'A');if (result!=(int)1e9) {System.out.println(result);}else {System.out.println(-1);}scan.close();}

下面为注释代码,如果理解不透可以参考👇

	static int n;//给定大小static int result=(int)1e9;//最大值初始化结果static char[][] c;//雷区static boolean[][] b= new boolean[110][110];//雷区的复制 static int x1,x2,y1,y2;//起点终点static int[] dx= {0,-1,1,0};static int[] dy= {1,0,0,-1};//四个方向static int[][]  arr=new int[1000][1000];//结果数组public static void dfs(int x,int y,int ans,char f) {if (ans>result) {//剪枝return;}if (x==x2 && y==y2) {//到达终点result=Math.min(ans, result);//保存最短的}for (int i = 0; i < 4; i++) {//向前走int x3=x+dx[i];int y3=y+dy[i];if (x3<1 || x3>n || y3<1 || y3>n) {//是否越界continue;}if (b[x3][y3]) {//是否走过continue;}if (c[x3][y3] == f) {//是否交替进入continue;}b[x3][y3]=true;//进入递归dfs(x3,y3,ans+1,c[x3][y3]);b[x3][y3]=false;//回溯精髓差点忘了}}public static void main(String[] args) {Scanner scan = new Scanner(System.in);n=scan.nextInt();scan.nextLine();c=new char[110][110];for (int i = 1; i <= n; i++) {//存储给定雷区String s=scan.nextLine();s=s.replaceAll(" ", "");for (int j = 0; j < n; j++) {c[i][j+1]=s.charAt(j);}}for (int i = 1; i <= n; i++) {//终点起点保存for (int j = 1; j <= n; j++) {if (c[i][j]=='A') {x1=i;y1=j;}if (c[i][j]=='B') {x2=i;y2=j;}}}dfs(x1,y1,0,'A');//调用if (result!=(int)1e9) {System.out.println(result);//输出结果}else {System.out.println(-1);//无结果输出-1}scan.close();}
http://www.dtcms.com/wzjs/790387.html

相关文章:

  • 建筑网站图片找网站开发项目
  • 直播网站排名新艾尚网站建设推广
  • 给人建设网站能赚钱吗以网站域名做邮箱
  • 网站开发 外文文献宝塔wordpress 数据库
  • 福建省建设厅网站余做行业网站
  • PHP做网站的核心是什么怎样防止别人利用自己的电脑做网站服务器
  • 钦州网站建设公司网站开发技术人员
  • 网站后台页面设计建站模板招募设计师
  • 淄博网站建设哪家专业注册域名能干什么
  • 周口专业做网站公司你认为网络营销是什么
  • 韩国 电商网站360免费wifi官网
  • 上海徐汇网站建设网页设计图片格式
  • 做网站公司长沙宁波小程序开发公司
  • 网广州建网站站制作没备案的网站收录
  • 免费s站推广网站财经网站建设
  • 做的网站进不去后台网站建设的现状
  • 大成建设株式会社网站万网 网站建设合同
  • 如何保护网站模板做网站搞笑口号
  • 网站如何进行网络推广如何进行网络推广和宣传
  • 本地做网站顺序虚拟货币交易网站建设
  • 网站建设实训总结范文建设网站需要花费什么费用
  • 山西高端建设网站网站浏览历史怎么查看
  • iis7.5 网站配置网站建设不完整什么意思
  • 直播网站开发公司深圳网络推广的公司
  • 产品通过网站做营销哔哩哔哩网页版打不开
  • 衡阳网站优化免费咨询win7优化大师免安装版
  • 一些设计网站烟台装修公司网站建设
  • 美食网站建设需求分析甘肃省住房和建设厅网站首页
  • 深圳定制网站制作咨询电话柳州市住房和城乡建设局网站首页
  • 大连网站建设哪家好app公司组织结构图