工场outing

工场outing

创新工场家族成员每年会组织一次旅行,公司的hr为了安排旅行路线伤透脑筋, 因为公司party会场被安排到一个景点B, 而大家的宾馆被安排在了另-个景点A。而景点A和景点B之间有若干个景点No .. Ni。 每个旅游景点大家最多只玩一次. 同时每个旅游素点都有一个评分X, 景点之间会有公路相连, 大家都不喜欢走回头路. 所以每条公路只能走一次。 请帮助hr设计一条路线P, 从A景点到B景点. 再

从B景点返回A景点, 途中必须经过若干个景点,同时使得该路线各个景点的评分和r最

大。

第-行输入旅游景点景点的个数n(不包括A市和B市. 0< n <= 100)

接下来的n行, 每行输入字符串s,代表旅游景点i的名称Ni和评分Xi (O < Xi <= 100)

接下来输入k, 表示必去的景点的个数 (o<=k<n)

接下来的k行, 每行输入必去的旅游景点名称

接下来输入公路的条数e

接下来e行. 每行输入公路的起点和终点

输出:

如果没有解:

输出一行NO

如果有解:

第一行输出YEs

第二行输出r(最大的评分和〉

第三行输出路径r 女口果路径不唯一. 输出任意一条

sample Input:

5

N1 10

N2 10

N3 10

N4 10

N5 20

1

N3

8

AN1

N1 NZ

NZ B

B N3

N3 N4

N4 A

BN5

N5 N4

Sample 0utput:

YES

40

A N1 N2 B N3 N4 A

解释: 由于N3必达. 所返回时不能走包含N5的路线

说明:

1.    除了”A”景点以外的景点最多只出现一次(可以为0,也可以l, 不可能重复)

思路:

如下图所示,如果A是结点1,B是结点7.要求从A到B,再从B到A的路径,可以先求出从1到7 的所有路径。这可以用DFS的思想求出Find_All_Path(),具体看代码。

1到7的所有路径有:

1 2 5 7  权重:20

1 3 6 7  权重:20

1 4 7    权重:30

路径用二维数组保存,权重用一维数组保存。

</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Raise

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值