1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

给定若干条电车线路,每条线路有固定票价 price,并给出它依次经过的一组站点。上车一次只收该线路的固定票价,在线路内任意移动不再收费;在换乘点(出现在多条线路中的同一站点)换乘到另一条线路时,需要再付那条线路的票价。求从起点站 X 到终点站 Y 的最小总票价;若不可达或最小票价大于身上钱数 Z,输出 -1。

建模与算法

  • 将“站点内免费移动、换乘才付费”转化为线路图: 把每一条电车线路看作图中的一个节点;若两条线路有共同站点,则在它们之间连一条无权边。
  • 费用在“进入一条线路时支付”。因此可在节点带权图上跑最短路:

P3795.第3题-电车路线规划

    1000ms Tried: 653 Accepted: 153 Difficulty: 5 所属公司 : 华为
    算法与标签>最短路算法

题目内容

为了方便城市居民有序流动,城市 AAA 开通了一系列有轨电车路线,每列电车会沿固定的路线循环行驶,电车票价实行一票制,不论乘坐多少站,均按固定价格收费,循环坐车时不重复收费。请计算你在城市里面,从出发点到目的地,乘坐电车的最低费用。

输入描述

第 111 行:MMM XXX YYY ZZZ ,其中:MMM 代表电车线路总数量,XXX 代表起点编号,YYY 代表终点编号,ZZZ 代表身上的金钱数。1<=M<=50;0<=X,Y<=500;X丨=Y:1<=Z<=5001<=M<=50;0<=X,Y<=500;X丨=Y:1<=Z<=5001<=M<=50;0<=X,Y<=500;X丨=Y:1<=Z<=500 。输入以空格分隔。下面跟着 MMM 行相同格式的数据。

第 222 行:pricepriceprice nnn station1station_1station1​ station2station_2station2​ station3station_3station3​ - sationnsation_nsationn​ ,其中:pricepriceprice 代表本条电车线路的票价,nnn 代表本条电车路线经过的站点数量、后面跟着 nnn 个数字,station1,station2,station3,...,stationnstation_1,station_2,station_3,...,station_nstation1​,station2​,station3​,...,stationn​ 代表本条电本线路经过的站点的站点编号,站点编号可能比站点总的数星大,stationnstation_nstationn​ 可能大于 nnn 。1<=n<=10,0<=stationn<=500;1<=price<=101<=n<=10,0<=station_n<=500;1<=price<=101<=n<=10,0<=stationn​<=500;1<=price<=10;

第 M+1M+1M+1 行:pricepriceprice nnn station1station_1station1​ staton2staton_2staton2​ sation3sation_3sation3​ ... stationnstation_nstationn​ 。

输出描述

需要花费的金钱数。如果无法达到或身上的金钱数不够达到,返回 −1-1−1 。

样例1

输入

5 15 12 4
2 2 7 12
3 3 4 5 15
4 1 6
3 2 15 7
1 3 12 13 7

输出

4

说明

共 555 条电车路线,要求从 151515 到 121212,可选路线包括:

aaa:乘坐线路 4(15−>7)4(15->7)4(15−>7) ,在 777 站点换乘线路 1(7−>12)1(7->12)1(7−>12)

bbb :乘坐线路 4(15−>7)4(15->7)4(15−>7) ,在 777 站点换乘线路 5(7−>3−>12−>13)5(7->3->12->13)5(7−>3−>12−>13)

第二种乘坐方式花费更小,只需要 444

样例2

输入

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

输出

5

说明

从第一行输入可知,电车线路总数为 222 ,出发点编号为 111 ,终点编号为 666 ,身上的金钱数为 555 。后面接着有 222 行不定长数据。

从第二行输入可知,第一条电车路线的票价为 222 ,经过 333 个站点,站点路线为 [1,2,7][1,2,7][1,2,7] 。

从第三行输入可知,第二条电车路线的票价为 333 ,经过 333 个站点,点路线为 [3,6,7][3,6,7][3,6,7] 。

分析可得最优的乘坐策略是在 111 站点先乘坐第一辆电车到达车站 777 ,然后换乘第二辆电车到车站 666 。共花费金钱 555 ,没有超过身上的金钱数 555 ,故应返回结果 555 。

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 0, 112ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?