题目描述

H城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴上线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。 一名旅客最近到H城旅游,他很想去S公园游玩,但如果从他所在的饭店没有一路已士可以直接到达S公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士, 这样换乘几次后到达S公园。 现在用整数1,2,…N 给H城的所有的巴士站编号,约定这名旅客所在饭店的巴士站编号为1…S公园巴士站的编号为N。 写一个程序,帮助这名旅客寻找一个最优乘车方案,使他在从饭店乘车到S公园的过程中换车的次数最少。

输入

测试数据有多组. 每组数据的第一行有两个数字M和N(1<=M<=100 1<N<=500),表示开通了M条单程巴士线路,总共有N个车站。从第二行到第M+1行依次给出了第1条到第M条巴士线路的信息。其中第i+1行给出的是第i条巴士线路的信息,从左至右按运行顺序依次给出了该线路上的所有站号相邻两个站号之间用一个空格隔开。当M=N=0是结束.

输出

输出数据只有一行。如果无法乘巴士从饭店到达S公园,则输出"N0",否则输出你的程序所找到的最少换车次数,换车次数为0表示不需换车即可到达?

样例输入

3 7 
6 7 
4 7 3 6 
2 1 3 5

样例输出

2

注意事项:

scanf有返回值;

scanf返回接收到的变量值的个数。
int a,b,c。
a 1进去时,试图用字符‘a’对a赋值,肯定是错的,于是退出,返回成功接收到赋值的个数 0.
1 a进去时,首先a能获取1.但b不能获取'a',于是返回只是1
如果是 1 1的话,那就都成功,返回2

代码如下

 1 #include<cstdio>
 2 #include<cstring>
 3 int m,n,s,x,y,dis[1000][1000],q[1000];
 4 void find();
 5 int main()
 6 {
 7     freopen("chengche.txt","r",stdin);
 8     memset(dis,0x3f,sizeof(dis));
 9     memset(q,0,sizeof(q));
10     scanf("%d%d",&m,&n);
11     for(int i=1;i<=m;i++)
12     {
13         int a,b=0;
14         char p;
15         while(scanf("%d%c",&a,&p)>0)
16         {
17             q[++b]=a;
18             if(p=='\n')
19             break;
20         }
21         for(int j=1;j<=b;j++)
22         for(int k=j+1;k<=b;k++)//从j+1开始,因为是单向;
23         if(j!=k&&q[j]!=0)
24         dis[q[j]][q[k]]=1;
25         memset(q,0,sizeof(q));
26     }
27     find();
28     if(dis[1][n]<100000)
29     printf("%d",dis[1][n]-1);
30     else
31     printf("NO");
32 }
33 void find()
34 {
35     for(int k=1;k<=n;k++)
36     for(int i=1;i<=n;i++)
37     for(int j=1;j<=n;j++)
38     if(i!=j&&i!=k&&k!=j&&dis[i][k]+dis[k][j]<dis[i][j])
39     dis[i][j]=dis[i][k]+dis[k][j];
40 }

转载于:https://www.cnblogs.com/gzy20020702/p/7477114.html

最优乘车(Floyd)相关推荐

  1. 【NOI1997】最优乘车

    最优乘车 时间限制: 1 Sec 内存限制: 128 MB 题目描述 H城是一个旅游胜地,为方便游客,在各个旅游景点及宾馆.饭店等地设置了N个巴士站,并开通了M条一些单向巴士线路. 现在用整数1,2, ...

  2. 最优乘车(travel.cpp)

    Problem A最优乘车(travel.cpp) H城是一个旅游胜地,每年都有成千上万的人前来观光.为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴上线路.每条单程 ...

  3. 最优乘车pascal程序

    Description H城是一个旅游胜地,每年都有成千上万的人前来观光.为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴上线路.每条单程巴士线路从某个巴士站出发,依 ...

  4. 最优乘车(信息学奥赛一本通-T1377)

    [题目描述] H城是一个旅游胜地,每年都有成千上万的人前来观光.为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路.每条单程巴士线路从某个巴士站出发,依次途经若干 ...

  5. 【codevs1722】【NOI1997】最优乘车,单元最短路?

    1722 最优乘车 1997年NOI全国竞赛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 题目描述 Description H城是一个旅游胜地,每年都有 ...

  6. SSL P1194 最优乘车 题目

    最优乘车(normal) Time Limit:1000MS  Memory Limit:65536K Total Submit:316 Accepted:136 Description H城是一个旅 ...

  7. 1377:最优乘车(travel)

    [题目描述] H城是一个旅游胜地,每年都有成千上万的人前来观光.为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路.每条单程巴士线路从某个巴士站出发,依次途经若干 ...

  8. 【9006】最优乘车

    Time Limit: 1 second Memory Limit: 256 MB 问题描述 H城是一个旅游胜地,每年都有成千上万的人前来观光.为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置 ...

  9. 1377:最优乘车(travel)——Dijkstra

    [题目描述] H城是一个旅游胜地,每年都有成千上万的人前来观光.为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路.每条单程巴士线路从某个巴士站出发,依次途经若干 ...

最新文章

  1. 给VMware虚拟机增加硬盘容量:Linux/Windows系统
  2. 大揭秘:程序员工作也可以成为享受!
  3. python基础入门视频-Python基础入门视频课程——笔记
  4. python发送短信接口_python发送短信和发送邮件
  5. centos安装java的jdk
  6. 爱了!爱了!Markdown 必备组合神器!
  7. 15 款Python编辑器的优缺点,别再问我“选什么编辑器”啦!
  8. js 字符串减去字符串_js关于字符串、条件语句和自加和自减
  9. 如何查看SQL Server2000执行过的SQL语句
  10. 个人生活的量化分析(三):考研英语初探
  11. 学校计算机学院教学管理ER图,学校课程管理ER图
  12. 霍尼韦尔门禁说明书_霍尼韦尔指纹锁说明书
  13. python UI自动化自动关闭浏览器学习记录
  14. 存储服务器2012R2系统怎么搞文件共享,server2012r2文件共享局域网权限设置的方法...
  15. CSS笔记(菜鸟教程)
  16. 设计模式 装饰者模式 带你重回传奇世界
  17. 成都一名程序员跳楼,程序员眼中的成都和天府软件园
  18. 新手常见(五国)(-v图)错误解决(原版,破解kernel,补丁kext下载)
  19. Arduino Uno 人体红外传感器实验-图文详录
  20. STM32F107VCTx HAL库 USART通信 DMA通信 友善串口调试助手 PL2303驱动安装

热门文章

  1. github使用-知乎的某小姐的一篇文章
  2. Python查询MySQL进行远程采集图片实例
  3. Android动画开发——Animation动画效果
  4. (zz)Sql Server 2005中的架构(Schema)、用户(User)、角色(Role)和登录(Login)(三)
  5. HK2000 V2版本 GPRS通讯串口说明
  6. 关于 Web Deployment Projects
  7. python 源码保护_Python代码保护
  8. nginx 重定向_虚拟机中安装nginx,重定向到resin
  9. 1581: 统计成绩-一题简单的坑题
  10. 昨天又写到个结构体排序,用多种cmp