2016华为挑战赛_寻路_赛题分析

题意:在有向图中,给定起点和终点,求经过所有必经点集合的最短路径。(图中所有的点最多只能经过一次)

限制:点数 <= 600, 必经点数 <= 50, 每个结点的最大出度为8

这是一个NP问题,是哈密顿回路和TSP问题的变种。

分析:对于这个问题最直接的想法就是采用深度优先暴力搜索,暴力搜索算法的时间复杂度太大(2^n),只能解决30点之内的初级用例。

而对于点数较多的测试用例,尝试过下面几种方法,虽然最后的实现效果不是很理想,官方的case 14,15没有跑出来,因为设计的算法都是基于贪心的,所以就掉沟里了=_=


1. 插点法(基于floyd算法)

    idea&#x

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值