蓝桥杯java第六届决赛第四题--穿越雷区
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯java第六届决赛第四题--穿越雷区
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
標(biāo)題:穿越雷區(qū)X星的坦克戰(zhàn)車很奇怪,它必須交替地穿越正能量輻射區(qū)和負(fù)能量輻射區(qū)才能保持正常運(yùn)轉(zhuǎn),否則將報(bào)廢。某坦克需要從A區(qū)到B區(qū)去(A,B區(qū)本身是安全區(qū),沒(méi)有正能量或負(fù)能量特征),怎樣走才能路徑最短?已知的地圖是一個(gè)方陣,上面用字母標(biāo)出了A,B區(qū),其它區(qū)都標(biāo)了正號(hào)或負(fù)號(hào)分別表示正負(fù)能量輻射區(qū)。例如:A + - + -- + - - +- + + + -+ - + - +B + - + -坦克車只能水平或垂直方向上移動(dòng)到相鄰的區(qū)。數(shù)據(jù)格式要求:輸入第一行是一個(gè)整數(shù)n,表示方陣的大小, 4<=n<100接下來(lái)是n行,每行有n個(gè)數(shù)據(jù),可能是A,B,+,-中的某一個(gè),中間用空格分開(kāi)。A,B都只出現(xiàn)一次。要求輸出一個(gè)整數(shù),表示坦克從A區(qū)到B區(qū)的最少移動(dòng)步數(shù)。如果沒(méi)有方案,則輸出-1例如:用戶輸入:5A + - + -- + - - +- + + + -+ - + - +B + - + -則程序應(yīng)該輸出:10資源約定:峰值內(nèi)存消耗(含虛擬機(jī)) < 512MCPU消耗 < 2000ms請(qǐng)嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:“請(qǐng)您輸入...” 的多余內(nèi)容。所有代碼放在同一個(gè)源文件中,調(diào)試通過(guò)后,拷貝提交該源碼。注意:不要使用package語(yǔ)句。不要使用jdk1.7及以上版本的特性。注意:主類的名字必須是:Main,否則按無(wú)效代碼處理。
package com.sihai.liujie;import java.util.Scanner;public class _4 {static char map[][] = new char[110][110]; static int vis[][] = new int[110][110];int n;static int sum=1000000;public static void main(String[] args) {Scanner s = new Scanner(System.in);int n = s.nextInt();int x = 0,y = 0; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { map[i][j] = s.next().charAt(0); if(map[i][j]=='A') { x=i;y=j; } } } dfs(0,x,y); if(sum==1000000) System.out.println(-1);else System.out.println(sum);}public static void dfs(int cur,int x,int y) { if(cur>=sum) return;if(map[x][y]=='B') { sum=cur; return; } vis[x][y]=1; if((x-1)>=0&&vis[x-1][y]==0&&(map[x][y]!=map[x-1][y])) { dfs(cur+1,x-1,y); } if((y-1)>=0&&vis[x][y-1]==0&&(map[x][y]!=map[x][y-1])) { dfs(cur+1,x,y-1); } if((x+1)>=0&&vis[x+1][y]==0&&(map[x][y]!=map[x+1][y])) { dfs(cur+1,x+1,y); } if((y+1)>=0&&vis[x][y+1]==0&&(map[x][y]!=map[x][y+1])) { dfs(cur+1,x,y+1); } vis[x][y]=0; }
}
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的蓝桥杯java第六届决赛第四题--穿越雷区的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 蓝桥杯java第六届决赛第三题--显示二
- 下一篇: 蓝桥杯java第五届决赛第一题--国王的