2016华为软件精英挑战赛:赛题及其答疑汇总

原创 2016年03月08日 09:55:03

注:本文文字均摘自官方指定网站和论坛,权威且可信,答疑见中间部分,非常全,众玩家可放心阅读。

同时文末给出了包括自己在内的诸多玩家的解法。

前言

赛题源自“未来网络”业务发放中的路由计算问题。算路问题属于基础算法问题,在图论、网络、交通等各个方面均有着广泛的研究与运用,里面不乏一些经典的算法,例如最短路中的广度优先搜索,Dijkstra算法等。网络算路问题的更优算法实现对于网络资源高效配置具有重要价值。
1 问题定义
给定一个带权重的有向图G=(V,E),V为顶点集,E为有向边集,每一条有向边均有一个权重。对于给定的顶点s、t,以及V的子集V',寻找从s到t的不成环有向路径P,使得P经过V'中所有的顶点(对经过V'中节点的顺序不做要求)。
若不存在这样的有向路径P,则输出无解,程序运行时间越短,则视为结果越优;若存在这样的有向路径P,则输出所得到的路径,路径的权重越小,则视为结果越优,在输出路径权重一样的前提下,程序运行时间越短,则视为结果越优。
说明:
1)图中所有权重均为[1,20]内的整数;
个人吐槽:没有复权值,经典Dijkstra算法可能适用
2)任一有向边的起点不等于终点;
个人吐槽:极端情况被踢出,减小难度
3)连接顶点A至顶点B的有向边可能超过一条,其权重可能一样,也可能不一样;
个人吐槽:不一样就取较小者
4)该有向图的顶点不会超过600个,每个顶点出度(以该点为起点的有向边的数量)不超过8;
5)V'中元素个数不超过50;
个人吐槽:指定点集越多,耗时越夸张,难点之一,优化点之一。
6)从s到t的不成环有向路径P是指,P为由一系列有向边组成的从s至t的有向连通路径,且不允许重复经过任一节点;
7)路径的权重是指所有组成该路径的所有有向边的权重之和。
2 输入与输出
输入文件格式
以两个.csv 文件(csv 是以逗号为分隔符的文本文件)给出输入数据,一个为图的数据(G),一个为需要计算的路径信息(s,t,V')。文件每行以换行符(ASCII'\n'即0x0a)为结尾。

1)图的数据中,每一行包含如下的信息:
LinkID,SourceID,DestinationID,Cost
其中,LinkID 为该有向边的索引,SourceID 为该有向边的起始顶点的索引,DestinationID为该有向边的终止顶点的索引,Cost 为该有向边的权重。顶点与有向边的索引均从0 开始 编号(不一定连续,但用例保证索引不重复)。
2)路径信息中,只有一行如下数据:
SourceID,DestinationID,IncludingSet
其中,SourceID 为该路径的起点,DestinationID 为该路径的终点,IncludingSet 表示必须经过的顶点集合V',其中不同的顶点索引之间用'|'分割。
输出文件格式
输出文件同样为一个.csv 文件。
1)如果该测试用例存在满足要求的有向路径P,则按P 经过的有向边顺序,依次输出有向边的索引,索引之间用'|'分割;
2)如果该测试用例不存在满足要求的有向路径P,则输出两个字符NA;
3)只允许输出最多一条有向路径。


版权声明:本文为EbowTang原创文章,后续可能继续更新本文。如果转载,请务必复制本文末尾的信息!

华为编程大赛汇总----java

以下华为编程比赛题目都是网上整理得到的,代码都是自己调试过的,由于网上java答案较少,欢迎大家批评指正,也希望对准备华为上机的童鞋们有一点点帮助。在练习的过程中成长,加油!~~ 1. 就餐抽查(3...

2014华为编程大赛题目:小明的筷子

题目: 小明的筷子        答题时间: 00 小时 01 分 05 秒 描述:  小明是个马大哈,某天他到超市...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

华为软件精英挑战赛2016

先上赛题链接:http://codecraft.huawei.com/home/detail正在参赛中,先占个坑,想到什么新的再来更新前言 赛题源自“未来网络”业务发放中的路由计算问题。算路问题属于...
  • hezhk3
  • hezhk3
  • 2016年03月21日 17:06
  • 1670

2016华为软件精英挑战赛总结

还记得当时做这个比赛的时候好多天都是满脑子想着这道题,除了后面没有意义的玄学调参,参加这种比赛还是很锻炼的。在比赛的过程中需要去学算法读论文这都是一种提高吧。这里写篇文章分析一下当时的思路同时也纪念当...
  • mmy1996
  • mmy1996
  • 2016年08月20日 19:52
  • 4133

2016华为软件精英挑战赛:高级案例---贪心策略(二)

一,算法设计思想: 实际上本算法是对期初算法思想的优化,主要的优化就在于我们不在盲目的寻找两个必经点的路径,而是总是寻找距离最近的必经点作为新起点去寻找下一个最近的必经点.......然而这样做还...

珍藏文:花10钟看一看少走30年弯路

HP大中华区总裁孙振耀退休感言:   如果这篇文章没有分享给你,那是我的错。   如果这篇文章分享给你了,你却没有读,继续走弯路的你不要怪我。   如果你看了这篇文章,只读了一半你就说没时间了,说明你...

<C/C++图>搜索算法:DFS与BFS

一,图的遍历基本理论 首先定义图的遍历(Traversing Graph):指从图中某一顶点出发访问图中其余顶点,且使每个顶点仅被访问一次。有两种常用的方法可用来搜索图:即深度优先搜索和广度优先搜...

2016华为软件精英挑战赛用例4

  • 2016年03月26日 23:28
  • 12KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2016华为软件精英挑战赛:赛题及其答疑汇总
举报原因:
原因补充:

(最多只允许输入30个字)