地铁规划

Description

地铁,其优势在于覆盖面广方便出行。某城市考虑在全市修建地铁。目前已确定各大地铁站点,并预估两两站点之间修建地铁的成本。政府部门希望能尽可能地节省开支,同时也希望本次项目可以覆盖到全市各大站点,目前亟需一份相关的成本预算。你可以计算出该项目的最小成本吗?

Input

可能有多个测试输入,第一行给出总共的测试输入的个数。

对于每个测试输入,第一行包含一个正整数N,接下来是N行铁道信息。每一行有N个整数X(0<N<100,0<X<10000),表示站点A和站点B之间修建地铁的成本为X。其中各站点到自身的成本视为0。

Output

输出一个整数,即地铁项目的最小成本。

Sample Input

2
3
0 1 100
1 0 2
100 2 0
4
0 2 3 4
2 0 4 1
3 4 0 5
4 1 5 0

sampleoutput

3

6

这道题用了最小生成树prim算法(我也是看了题解才会的)

prim算法就是选取一个点,然后找到距离这个点权值最小的下一个点(这道题我是先选站点1作为第一个点,因为循环比较好写,但是也可以选其它点作为起点,权值的意思就是选距离选定点的最短路径的那个点,如果有两个点距离相同,那么选择站点数较小的那个点),然后在把下一个点作为选定点,以此类推,直到把所有的站点都包括进来。注意我们要找的最小值是已经选定的点到未选定的点的最小值。

那测例2来说明就是:当前存在4个站点,我们选站点1作为起点,此时最短路径为0,发现站点1到站点2的距离最短,所以我们选取站点2作为下一个点,此时最短路径为2。因此站点2是也是选定点,然后我们发现站点1,站点2(已经选定的点)中到站点3,站点4(还没有选的点)的最短路径是站点2到站点4,所以我们把站点4作为选定点,此时最短路径为3,最后我们发现1,2,4到3的最短路径是1到3,所以最后把3作为选定点,最短路径为6,此时我们发现所有点都被选定了,因此证明所有的点都有路径经过,所以输出最短路径6。

最后贴上代码。。。。

 1 #include <iostream>
 2 #include <cstdlib>
 3 #include <cstring>
 4 #include <cstdio>
 5 // 感谢这位大牛的博客
 6 //http://www.cnblogs.com/Veegin/archive/2011/04/29/2032388.html
 7 using namespace std;
 8
 9 int main () {
10   int T;
11   cin >> T;
12   while (T--) {
13     int N;
14     cin >> N;
15     int road[N][N];
16     int low[N];
17     for (int i = 0; i < N; i++) {
18       for (int j = 0; j < N; j++) {
19         scanf("%d", &road[i][j]);
20       }
21       low[i] = road[0][i];
22     }
23     int i, j,pos, res = 0, min;
24     int visited[N];
25     memset(visited, 0, sizeof(visited));
26     visited[0] = 0; // 从A点开始标记
27     pos = 0; // 记录该点
28     for (i = 0; i < N; i++) { // 通过循环找到该行最小的距离 执行n - 1 次
29       min = 10000; // 把min设置成最大的
30       for (j = 0; j < N; j++) {
31         if (visited[j] == 0 && min > low[j]) {
32           min = low[j];
33           pos = j;
34         }
35       }
36       res += min; // 累加最小权重
37       visited[pos] = 1; // 说明pos所在的站已经有线路通过了
38       for (j = 0; j < N; j++) {
39         if (visited[j] == 0 && low[j] > road[pos][j]) // 这个是通过已经找到的pos的那行去找还没有经过的站点的最小值
40           low[j] = road[pos][j];
41       }
42     }
43     cout << res << endl;
44   }
45   system("pause");
46 }

 
时间: 2024-08-22 10:15:24

地铁规划的相关文章

地铁规划项目需求理解和设计思路

地铁规划项目需求理解和设计思路 需求理解 将地铁线路保存成一个可读入,简洁明了的文本 程序能正确读入这个文件,并获取地铁线路信息 程序能正确处理输入的命令行 地铁能正确输出指定地铁线经过的站点 程序能正确输出两个站点间的最短路径 程序要有健壮性,能通过各类性能测试 按要求编写博客,详细说明花费时间,代码,各个模块和测试用例 设计思路 文本格式 1号线 刘园 西横堤 果酒厂 本溪路 勤俭道..... 2号线 曹庄 卞兴 荠园西道 咸阳路...... 3号线 小淀 丰产河 华北集团...... 按照

杭州地铁规划五年规划,2017-2022

直接上图.此图可以作为买房,选址等用途. PS:单击,可以放大图像,清晰查看各个地块的用途(不同颜色的图块,代表不同的用途,请先熟悉一下城市规划的一些基本知识). 或者下载文件查看 杭州地铁五年规划_2017-2022.rar

上海新增 9 条地铁规划!哪些到你家?

依据最新出炉的<上海市轨道交通近期建设计划 ( 2017-2025 ) >,截至 2025 年上海将新增规划再建设 9 条轨道交通线路.据了解,此次公示的 9 条线路并非都是地铁,还包括了连接上海两大机场的的城际铁路快线,以及中运量轨道线路等多种模式. 据悉,到 2025 年为止,上海将拥有包括地铁.城际铁路.机场快线.磁浮线等多种模式的轨交线路,共计 39 条,总长约 1050 公里. 快来看看,你家附近到底又新增了几条地铁线路? 1 19 号线 这是一条城市南北向主通道,横跨 4 个区,将

北京地铁规划项目总结

一.项目介绍 实现一个帮助进行地铁出行路线规划的命令行程序. github链接:https://github.com/blakeyoungc/subway 主要需求:1.地铁线路图信息的导入     2.查询指定地铁线经过的站点 3.计算从出发到目的站点之间的最短(经过的站点数最少)路线,并输出经过的站点的个数和路径(包括出发与目的站点). 采用https://map.bjsubway.com/上的北京地铁线路图:  二.需求实现 主要模块介绍: 序号 模块名 功能 对应java类 1 主模块(

北京地铁规划项目总结报告

本项目已上传Github: 问题重述: 任务: 实现一个帮助进行地铁出行线路规划的命令行程序 实现加载地铁线路信息 实现查询指定地铁线路信息 实现从指定出发地到目的地的最短路径查询 设计: 采用语言:java GitHub链接:https://github.com/xixihaha54/subway 主要模块介绍: 序号 模块名 功能 对应java类 1 主模块(subway) 对输入参数的控制 Subway.java 2 文件输入输出模块 txt文件的读写 DataBuilder.java 3

时尚集团与深铁、港铁共探地铁商业运营经验

亮点:深圳市轨道协会搭台助力,时尚集团与深铁.港铁共探地铁商业运营经验 行业的发展离不开政府主导.协会搭台.企业创新:而企业的发展则来自卓越的商业视野和多赢的战略决策. 多年来,时尚集团将公司资源聚焦在城市地下商业空间领域,正是透过城市发展规律,看到了地下商业广阔的上升前景. 从中国第一条地下商业街--时尚集团沈阳时尚地下街,到与地铁规划相结合的地下购物中心--时尚集团南京时尚莱迪,再到中国最大的地下购物中心--时尚集团广州时尚天河,时尚集团在中国地下商业领域,走出了一条独特的成功之路. 正是缘

2019粤港澳大湾区地铁产业大会一号通知

会议背景粤港澳大湾区建设上升为国家战略后,已经成为世界级湾区城市群,在面积.人口.GDP来说具有较大优势.从长远来看,是国家及国际重点关注的一片区域,我们将掌握机遇先行布局,力争成为推动湾区发展的先驱者.在"一带一路"倡议的指导下,粤港澳大湾区现已联合11个城市的高速路网.港口.机场.城际轨道的立体交通网络,大湾区交通的进一步联合指日可待.大湾区介绍粤港澳大湾区(大湾区)范围包括香港.澳门两个特别行政区,和广东省广州.深圳.珠海.佛山.惠州.东莞.中山.江门.肇庆九市.大湾区轨道交通建

个人作业-Week3:代码复审

软件工程师的成长 我在上大学之前,对于软件工程师之类并无概念,并且高初中的电脑课也从未提及过写代码之类的东西,更多的都是一些教一些办公软件的使用(笑,明明电脑课总是因为老师“有事”变成其他课,根本就没上过几节吧),来到大学后得知一些同学高中就开始搞各种竞赛后,我感到十分惊讶,什么,从小热爱学习XX,一路坚持,最终成为XX大师的人小说以外真的有啊.大学之后的课余时间更是鲜有与软件工程相挂钩的事情,用一句话概括,就是过着这些博主批判对象的生活,十分尴尬.选这个课就是觉得应该做出些改变了,然而在第一次

我是平民:一个平民怎样投资房产致富

我反问:"房价是不是没有跌7你没有告诉我你要买房,否则我会让你再等两个月." 后来房价上涨速度非常之快.其实不到半年,他的房价涨幅已经超过了税款的额度. 我看透明售房系统 又如透明售房系统.杭州向上海学习,于2004年下半年启动了透明售房系统,推动新建楼盘的公平销售.挤走房产投机者.一般人看来,这个系统必定给消费者以公平的机会,但是实际上并不完全是这样的. 我一直关注下沙的小户型房产.2005年元旦.下沙的"十六街区"即将开盘,我收到房产公司的邀请专门去听了他们的楼