码迷,mamicode.com
首页 > 其他好文 > 详细

微软第四题 给定cost能遍历的最大城市数

时间:2015-09-09 22:41:25      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

有向图中N*N矩阵 cost:M, 最多可以遍历的结点个数 例如A可以有0->1->2->0->1 代价:2+2+3+2=9<10 输出4

#include <iostream>
using namespace std;

int main(){
    int N=3;int M=10;
    int A[][3]={{0,2,3},{4,0,2},{3,4,0}};
    int last_step[3];
    int dist[3][3];

    for(int i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
            dist[i][j]=A[j][i];
        }
    }
    for(int i=0;i<N;i++){last_step[i]=i;}
    int Max=0;
    for(int step=1;step-Max<=1;step++){
        for(int j=0;j<N;j++){ 
            int min=INT_MAX;int u;
            for(int m=0;m<N;m++)
            {
                if(last_step[j]!=m&&dist[m][j]<min)
                {
                    min=dist[m][j];
                    u=m;
                }
            }

            last_step[j]=u;
            for(int k=0;k<N;k++) 
            {            
                dist[k][j]=min+A[k][u];        
                if(dist[k][j]<=M)
                {Max=step;}
            }   
        }    
    }
    
    cout<<Max<<endl;
    return 0;
}

 

微软第四题 给定cost能遍历的最大城市数

标签:

原文地址:http://www.cnblogs.com/sylar120/p/4796191.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!