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

有向图中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=;int M=;
int A[][]={{,,},{,,},{,,}};
int last_step[];
int dist[][]; for(int i=;i<N;i++)
{
for(int j=;j<N;j++)
{
dist[i][j]=A[j][i];
}
}
for(int i=;i<N;i++){last_step[i]=i;}
int Max=;
for(int step=;step-Max<=;step++){
for(int j=;j<N;j++){
int min=INT_MAX;int u;
for(int m=;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=;k<N;k++)
{
dist[k][j]=min+A[k][u];
if(dist[k][j]<=M)
{Max=step;}
}
}
} cout<<Max<<endl;
return ;
}
上一篇:HDU——1596find the safest road(邻接矩阵+优先队列SPFA)


下一篇:[Python爬虫] 之七:selenium webdriver定位不到元素的五种原因及解决办法(转载)