深搜-最短路徑
阿新 • • 發佈:2019-02-09
最短路徑,一般都用廣搜啊,廣搜用Java實現我很迷茫啊package aha; import java.util.Scanner; //1到n最短路徑 public class zuiduan { static int []book=new int [1000]; static int e[][]=new int [1000][1000]; static int n; static int min=9999; public static void main(String[] args) { Scanner sc=new Scanner(System.in); n=sc.nextInt(); int m=sc.nextInt(); //初始化矩陣 for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(i==j) e[i][j]=0; else e[i][j]=9999; } } //初始化邊 for(int i=1;i<=m;i++){ int a=sc.nextInt(); int b=sc.nextInt(); int c=sc.nextInt(); e[a][b]=c; } book[1]=1; dfs(1,0); System.out.println(min); } private static void dfs(int cur, int dis) { // TODO Auto-generated method stub if(dis>min) return;//大於直接放棄 if(cur==n){//到了目的地 if(min>dis){ min=dis; } return; } for(int i=1;i<=n;i++){ if(e[cur][i]!=9999&&book[i]==0){ book[i]=1; dfs(i,dis+e[cur][i]); book[i]=0;//取消對該城市的標記 } } return ; } }