华为机试题-地铁换乘
来源:互联网 发布:xp开启网络共享 编辑:程序博客网 时间:2024/04/27 23:04
主要用到了图论中的求最短路径算法,这里用到的是floyd算法
#include <iostream>#include <cstring>using namespace std;int dis[35][35];int INF=65535;char station[35][4]={"A1","A2","A3","A4","A5","A6","A7","A8","A9","T1","A10","A11","A12","A13","T2","A14","A15","A16","A17","A18","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","B11","B12","B13","B14","B15"};void Init(){int i,j;for(i=0;i<35;i++)for(j=0;j<35;j++){if(i==j)dis[i][j]=0;else dis[i][j]=INF;}for(i=1;i<20;i++){dis[i][i-1]=1;dis[i-1][i]=1;}dis[0][19]=1;dis[19][0]=1;//环线,最后一站和第一站相连for(i=21;i<25;i++){dis[i][i-1]=1;dis[i-1][i]=1;}dis[24][9]=1;dis[9][24]=1;//换乘dis[25][9]=1;dis[9][25]=1;for(i=26;i<30;i++){dis[i][i-1]=1;dis[i-1][i]=1;}dis[29][14]=1;dis[14][29]=1;//换乘dis[30][14]=1;dis[14][30]=1;for(i=31;i<35;i++){dis[i][i-1]=1;dis[i-1][i]=1;}return;}void Floyd(){int i,j,k;for(k=0;k<35;k++)for(i=0;i<35;i++)for(j=0;j<35;j++)if(dis[i][k]!=INF&&dis[k][j]!=INF&&dis[i][j]>dis[i][k]+dis[k][j])dis[i][j]=dis[i][k]+dis[k][j];return;}int main(){char start[4],end[4];while(cin>>start){cin>>end;Init();Floyd();int i,j;for(i=0;strcmp(station[i],start);i++);//找到站点对应的位置for(j=0;strcmp(station[j],end);j++);//cout<<dis[i][j]+1<<endl;}return 0;}
0 0
- 华为机试题-地铁换乘
- 华为机试题(地铁换乘,图的应用)
- 华为机试题——高级题:地铁换乘
- 地铁换乘(华为机试样题)
- 华为机试地铁换乘问题
- 华为机试--地铁换乘问题
- 华为地铁换乘问题
- 华为机试题, 换乘。抛砖引玉
- 华为机试—地铁换乘(图文吐血整理)
- 华为机试地铁换乘C++实现(不容易啊)
- 华为笔试题——地铁换乘
- 华为笔试题:地铁换乘问题
- 地铁换乘
- 地铁换乘
- 地铁换乘
- 地铁换乘
- 地铁换乘
- 2014华为机试——地铁换乘寻找最少车站数和排序算法
- C语言的一些经典案例
- 金山词霸要逆袭
- C++ 入门
- Python 自省指南
- id选择器的使用----jQuery高级技巧
- 华为机试题-地铁换乘
- hdu 2212
- 我们应该多点小而轻的应用
- 2013级C++第17周项目【项目2-用指针玩字符串】之测量字符串长
- 余额宝究竟是什么东西
- 经典c语言案例
- 开始
- CareerCup Compute the rearrangement of x that is closest to y but still greater than y
- Codeforces Round #235 (Div. 2)