首页 > 编程语言 > 详细

华为地铁换乘 Java

时间:2015-08-21 15:18:47      阅读:262      评论:0      收藏:0      [点我收藏+]


public class MetroTransfor {
    
    static int ver=37;
    static int point=35;
    static int [][] distance= new int[ver][ver];
    static int [][] path= new int[ver][ver];
    public static  void  main(String [] args){
        
    
        
        initDistance();
        initPath();
        floyed();
        
        
    }

    private static void initPath() {
        for(int row=0;row<ver;row++)  
            for(int col=0;col<ver;col++)  
                path[row][col]=row;
        
    }

    private static void floyed() {
        
        for(int i=1 ; i<= ver; i++){
            for(int j=1 ; j<= ver; j++){
                for(int k= 1 ; k<= ver; k++){
                    if(distance[j][k]>distance[j][i]+distance[i][k]){
                        
                        distance[j][k]=distance[j][i]+distance[i][k];
                        path[j][k] = path[i][k];
                    }
                }
            }
        }
        
    }

    private static void initDistance() {
        
        
        
        
        for(int i=1; i <=ver ;i++){
            for(int j=1 ;j<=ver; j++){
                if(i==j) distance[i][j]=0;
                else distance[i][j] = 10000;//设置为不可达
            }
        }
        
        
        int [] a = {0,1,2,3,4,5,6,7,8,33,9,10,11,12,13,35,14,15,16,17,0};//34 ,35 指T1,T2
        int [] b = {18,19,20,21,22,33,23,24,25,26,27,34,28,35,29,30,31,32};  //34 ,35 指T1,T2
        for(int i = 0;i<a.length-1;i++){
            distance[a[i]][a[i+1]] = 1;
            distance[a[i+1]][a[i]] = 1;
        }
        
        for(int i = 0;i<b.length-1;i++){
            distance[b[i]][b[i+1]] = 1;
            distance[b[i+1]][b[i]] = 1;
        }
        
        
        
        
    }
    
    
    
    
}

华为地铁换乘 Java

原文:http://www.cnblogs.com/liuchuanwu/p/4747688.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!