Description

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

Input

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

Output

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

Sample Input

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

Sample Output

这题我是用广度优先搜索做的

我先把所有可走的线路记录下来,再去搜。

var
n,m:longint;
a:array[0..500,0..500]of boolean;
f:array[0..500]of boolean;
father,b,state:array[0..500]of longint;

procedure init;
var
k,i,j:longint;
begin
    fillchar(a,sizeof(a),false);
    fillchar(state,sizeof(state),#0);
    readln(m,n);
    for i:=1 to m do
    begin
        k:=0;
        repeat
             inc(k);
             read(b[k]);
             for j:=1 to k-1 do
             a[b[j],b[k]]:=true;
        until eoln;
    end;
end;

procedure bfs;
var
head,tail,i:longint;
begin
    head:=0;tail:=1;
    father[1]:=1;f[1]:=true;state[1]:=0;
    repeat
         inc(head);
         for i:=1 to n do
         if (a[father[head],i]=true)and(f[i]=false) then
         begin
             inc(tail);
             f[i]:=true;
             father[tail]:=i;
             state[i]:=state[father[head]]+1;
         end;
    until (f[n]=true)or(head=tail);
    if f[n]=true then write(state[n]-1) else write('NO');
end;

begin
    init;
    bfs;
end.

转载于:https://www.cnblogs.com/YYC-0304/p/9500232.html

最优乘车pascal程序相关推荐

  1. 最优乘车(Floyd)

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

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

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

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

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

  4. 【NOI1997】最优乘车

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

  5. SSL P1194 最优乘车 题目

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

  6. 1377:最优乘车(travel)

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

  7. 最优乘车(travel.cpp)

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

  8. 【9006】最优乘车

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

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

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

最新文章

  1. php调mysql接口头文件_php基础系列:PHP连接MySQL数据库用到的三种API
  2. 关于HttpUrlConnection网络请求之返回结果的中文乱码解决方法
  3. 证书的应用之一 —— TCPSSL通信实例及协议分析(上)
  4. Eclipse使用————Working Set工作集
  5. “互联网+”大赛之AI创新应用赛题攻略:大胆脑洞,共绘智慧生活蓝图
  6. [转]程序员应打破牢笼,展望更高层次的世界
  7. selenium脚本编写的注意点,那些我踩过的坑
  8. WinSCP 连接 Ubuntu 拒绝的问题
  9. idea中git替换,推送到新的github或者gitlab上面
  10. 每天学一点flash(4) 数组与xml配合使用
  11. 阿里首席架构师分享的Java工程师职业规划
  12. 我为什么学习设计模式
  13. 关闭安卓系统导航栏右下角自动旋转按钮
  14. WIN10打印机显示服务器脱机,图文给您说win10网络打印机脱机的解决方法
  15. 介绍两个测试网页打开速度的网站
  16. EFI和EFI Shell命令简介
  17. bp神经网络推导以及物理意义
  18. PicPick的安装方法
  19. 记录一个获取颜色RGB值的小技巧
  20. MongoDB迁移方案

热门文章

  1. [MATLAB学习笔记]textread读取文本文件中的数据;写入多个输出
  2. 今日机器学习概念:感知机模型
  3. vue在微信里面的兼容问题_vuejs在安卓系统下微信X5内核这个兼容性问题如何破?...
  4. python分片操作_【python原理解析】python中分片的实现原理及使用技巧
  5. javascript一句话技巧
  6. fatal error C1001的一个解决心得
  7. javascript 调用c#变量实例
  8. Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败
  9. Feign,Apache Http Client,OkHttp的区别
  10. Easyexcel文件下载时,中文名称显示为下划线