强调一下,所有条件都很宽松,在得到路径的过程中可以舍弃一些之前列举的条件,比如给出的答案必经点只经过一个点,必经路线只经过一条,权值不一定最小,经过点数不一点最少等等。所以给出的最优解,可能是满足部分条件的解,解的个数应该也是多个。(以上个人对题意理解,应该是没偏差的)
核心:Dijkstra 算法,计算固定两点之间的最短距离。
目前三个的小队伍在做,结果已经能出来了,也能验证结果(当然也可能会有一些隐藏的小 Bug )。但是感觉这种方式效率有点低,所以来问问大家有没有好的思路,取取经,欢迎大家提意见,在这先谢了。
PS:顺便问一下,像这种小算法题,找工作的时候有没有微小的作用呢,有个什么样的比重呢,应该会有个映像分吧。
PPS:顺便说一下 Mac 怎么没搞个上下分屏呢,像这样的“微小项目”上面 Atom 下面 iTerm2 还是蛮爽的哈哈。
1
mickeyandkaka 2017-05-07 22:37:08 +08:00
中兴的比赛吧。
https://cs.stackexchange.com/questions/14390/find-a-simple-path-visiting-all-marked-vertices 显然最优解是 NP,把必须经过的边,转化成点,然后状压 DP 就行了。 这种小数据没什么意思。 |
2
MForever78 2017-05-07 22:57:40 +08:00
楼主,你这样在这里公开地问比赛的题目,这样符合规则吗?
|
3
wuyukai OP @MForever78 这种题不是大把非常非常常见?贴个图只为解释的更清楚,如果不合适就联系站长移除吧 @Livid
|
4
mickeyandkaka 2017-05-08 00:41:52 +08:00
@wuyukai 主要是图都是题目里面的。。。
|
5
wuyukai OP @mickeyandkaka 可是最后算法肯定是通用的呀,给定任意一个类似的图,给定任意类似的条件,然后计算出结果,现在这个图根本说明不了任何问题啊,只是个参考,写出来的算法肯定不是针对这一个图啊,不然还有什么用。
|
6
flowfire 2017-05-08 09:57:00 +08:00 via Android
算法废表示我只能想到广度优先……………
|
7
Weixk 2017-05-08 11:44:21 +08:00
这个有点类似去年华为软挑题目,就是不知道图的规模。如果有几百上千个节点用 Dijkstra 肯定是不行了,得用启发式算法,如蚁群算法这种。。
|