Toggle navigation
科创
{{ getSearchSuggestionLabel(suggestion) }}
{{ part.text }}
查看更多
登录
 
注册
电波
论坛
专栏
应用
登录
注册
{{ getSearchSuggestionLabel(suggestion) }}
{{ part.text }}
查看更多
论坛
>
计算机科学
>
软件综合
文号
t59205
阅读
3234
回复
2
收藏
3
C++遇到了难题,希望大神帮忙解答。。。
dafenghaha
2013/08/03
软件综合
IP:北京
4.
道路修建
(road.pas/c/cpp)
【问题描述】
小明所在的城市是一个依赖旅游而发展的城市,现在市长想把市里的几个区域用道路连接起来,每对区域之间修路所需的花费都已经计算出了,现在问题就是用最小的花费把这几个区域用道路都全部连通。但是只要智商正常的人都能看出这是图的最小生成树,所以小明的市长不可能连这个问题都搞不定的。小明的市长把最小生成树求出来后发现市里面两个最著名景点之间的路会变得很长,为了避免外地游客不和谐的呼吁声,市长决定要保持这两个景点之间道路最短。也就是说在这两个景点之间的道路为最短路的情况下再将其他各个区域修路连通且花费最少。由于小明的市长只在小学一年级学过一学期的信息学,所以对于这个问题他还是有些伤脑筋,于是他找到了你……
【输入】
第一行一个数
n
,代表有
n
个区域(
n<=1000
)
第二行两个数
a
,
b
表示那两个著名景点的编号
接下来有
n
行,每行有
n
个数,第
i
行的第
j
个数就代表编号为
i
的区域到编号为
j
的区域修路所需的花费(均大于
0
,若为
0
则是不能修路)
【输出】
满足条件的总花费,若两著名景点之间不能连通则输出
’bad test data’
【输入输出样例】
XXXXXXX
road.out
5
2 5
0 5 0 1 3
5 0 4 0 0
0 4 0 3 10
1 0 3 0 2
3 0 10 2 0
12
注:最小生成树应为(
1-4
)
+
(
4-5
)
+
(
4-3
)
+
(
3-2
)
=10
但是要保证
2
到
5
为最短路所以要保证(
2-1-5
)这条最短路在树中,此时再加上(
4-1
),(
3-4
)等于
12
来自:
计算机科学
/
软件综合
2
0
全部
只看作者
daxus
13年5个月前
IP:未同步
555048
1楼
去CSDN把,多给点分,有人给你答案的。
加载全文
引用
评论
0
celeron533
13年5个月前
IP:未同步
555205
2楼
格式调整一下,看起来太蛋疼
加载全文
引用
评论
0
全部
只看作者
在列表中查看
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
编辑
删除
{{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
保存
取消
我也是有底线的
保存中...
保存