博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nyoj 1238 最少换乘 (河南省第八届acm程序设计大赛)
阅读量:5968 次
发布时间:2019-06-19

本文共 2041 字,大约阅读时间需要 6 分钟。

最少换乘

时间限制:
2000 ms  |  内存限制:
65535 KB
难度:
3
描写叙述

 欧洲某城是一个著名的旅游胜地,每年都有成千上万的人前来观光旅行。Dr. Kong决定利用暑假好好游览一番。。

年轻人旅游不怕辛苦,不怕劳苦,仅仅要费用低即可。但Dr. Kong年过半百,他希望乘坐BUS从住的宾馆到想去游览的景点,期间尽可量地少换乘车。

 

Dr. Kon买了一张旅游地图。他发现。市政部门为了方便游客,在各个旅游景点及宾馆。饭店等地方都设置了一些公交站并开通了一些单程线路。每条单程线路从某个公交站出发。依次途经若干个站,终于到达终点站。

但遗憾的是。从他住的宾馆所在站出发。有的景点能够直达。有的景点不能直达,则他可能要先乘某路BUS坐上几站,再下来换乘同一站的还有一路BUS, 这样须经过几次换乘后才干到达要去的景点。

 

为了方便。如果对该城的全部公交站用12……N编号。Dr. Kong所在位置的编号为1,他将要去的景点编号为N

请你帮助Dr. Kong寻找一个最优乘车方案,从住处到景点,中间换车的次数最少。

输入
第一行: K 表示有多少组測试数据。(2≤k≤8)
接下来对每组測试数据:
第1行: M N 表示有M条单程公交线路,共同拥有N站。

(1<=M<=100 1<N<=500)

第2~M+1行: 每行描写叙述一路公交线路信息,从左至右按执行顺序依次给出了该线路上的全部站号,相邻两个站号之间用一个空格隔开。

输出
对于每组測试数据。输出一行。假设无法乘坐不论什么线路从住处到达景点,则输出"N0",否则输出最少换车次数,输出0表示不需换车能够直达。
例子输入
23 76 74 7 3 62 1 3 52 61 3 5 2 6 4 3
例子输出
2NO
来源
上传者

记得竞赛的时候 我一直对队友说 这道题 你们能做,最后还是没做出来。对于刚刚接触acm的我dfs,bfs仅仅知道用

却不知道原理  今天大概一个小时 就做出来了

起初用的dfs做的 结果超时  就想着优化 结果还是没优化出来 

就用bfs了。。

#include 
#include
#include
#include
#include
using namespace std;vector
map[505];bool vis[505][505];int Min;struct List{ int data; struct List *next;};struct node{ int x,cost; friend bool operator <(node a,node b) { return a.cost>b.cost; }};int bfs(int pos,int key){ priority_queue
s; node temp,temp1; temp.x=pos,temp.cost=0; while(!s.empty()) s.pop(); s.push(temp); while(!s.empty()) { temp=temp1=s.top(); s.pop(); if(temp.x==key) return temp.cost; for(int i=0;i
='0'&&str[i]<='9') x=x*10+str[i]-'0'; else if(x!=0) { List *temp; p->data=x; temp=(struct List *)malloc(sizeof(struct List)); p->next=temp; p=temp; x=0; } } p->next=NULL; p=head; for(p=head;p->next!=NULL;p=p->next) { for(List *l=p->next;l->next!=NULL;l=l->next) { map[p->data].push_back(l->data); } } while(head) { List *t; t=head->next; free(head); head=t; } p=head=(struct List *)malloc(sizeof(struct List)); } int x=bfs(1,n); if(x!=-1) printf("%d\n",x-1); else printf("NO\n"); } return 0;}

转载于:https://www.cnblogs.com/clnchanpin/p/7102598.html

你可能感兴趣的文章
关于telnet的问题
查看>>
CCNA学习指南十三章
查看>>
ssh免密码登录
查看>>
laravel 方法摘要
查看>>
JPA的继承 OOD和关系数据库的 纽带
查看>>
【Python网络爬虫】规则#20181023
查看>>
我的友情链接
查看>>
AndroidTelephony学习大纲
查看>>
snmp error on SnmpMgrRequest 40
查看>>
Linux 配置IP
查看>>
详解热备份路由协议(HSRP)
查看>>
Ubuntu10.04下配置和使用JDK-Mysql-Tomcat-SVN
查看>>
烂泥:高负载均衡学习haproxy之安装与配置
查看>>
六个国外免费的DNS服务-做英文与外贸必备
查看>>
Hprose开源的高性能远程对象服务引擎
查看>>
Linux下磁盘加密
查看>>
启用预算后的单据没有预算数据的控制说明
查看>>
【IIS7.5服务器问题】未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序...
查看>>
Httpd2.4简介及CenOS6.6下编译安装
查看>>
解决思维导图软件Mindmanager Mindjet连接出错
查看>>