usaco月赛cowroute

本文介绍了博维尼亚航空公司复杂的航线系统,奶牛贝西需要找到从城市A到城市B最廉价且城市数最少的路线。问题转化为求解最短路径,可以使用Dijkstra算法来解决。文章提供了输入输出样例,并提示在处理航线费用时需要注意使用64位整数。
摘要由CSDN通过智能技术生成

奶牛的路线
厌烦了冬天农场的寒冷,奶牛贝西打算飞去一个温暖的地方度假。不幸的是,她发现只有一条航线——博维尼亚航空公司打算出售机票给奶牛,而且这些票的组成有些复杂。
博维尼亚航空公司拥有N条航线,每一条都有一个包括两个以上城市的特定路线。比如说,一架飞机可能会按照从城市1开始,飞到城市5,再到城市2,最后到达城市8的路线飞行。没有城市会在同一航线中重复出现。如果贝西选择使用一条航线,她可以在航线上任何一个城市登机或离机。她不必在第一个城市登机或在最后一个城市离机。每一条航线都有一个确定的价格,如果贝西选择了航线上的任何一部分,无论她经过了航线上多少个城市,都要付出这样多的钱。如果贝西在他的旅行中重复使用了一条航线(就是说,如果她离开了一条航线,之后又在某个城市回到了这条航线),那么她必须为每次使用分别付账。
贝西想要找到一条从她的农场(在城市A中)到她在热带的目的地(城市B)最廉价的路线。请帮她计算出他必须花费的最小的费用,同时为了达到这个费用所需经过的城市数最少是多少。

【输入】(cowroute.in)
第一行输入包括A,B和N,用空格分开。
接下来的2N行描述每条可用的航线,每条航线两行。第一行包括使用这条航线的费用(一个1~1,000,000,000之内的整数)和这条航线上的城市数(一个1~100内的整数)。第二行按顺序列出了航线上的城市,每个城市有一个范围在1~1000内的标号。注意航线的费用可能会超过32位整数所能容纳的范围,所以你应该使用64位整数(LL大法好)。

【输入样例】
3 4 3
3 5
1 2 3 4 5
2 3
3 5 4
1 2
1 5

【输出】(cowroute.out)
输出贝西从城市A到城市B所需花费的最小费用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值