矩阵最长的连续路径算法~

2017-09-17 15:28:51 +08:00
 hqtc

题目:

在一个 10x10 矩阵中的某些格子上分布着宝物,某人从一处像贪吃蛇一样开始吃,但不会像贪吃蛇一样长身体,而且必须连续吃宝物才可以前进。前进方向 8 个相邻格子都可以,怎样的算法可以选择一条吃掉最多宝物的路线?

我现在用递归做,但是碰到那种 4x4 以上连续宝物的地图就会超时。。。

求高手解答~

__

感觉并不像贪吃蛇的问题,而是找一条最长的连续路径。。。

3954 次点击
所在节点    算法
17 条回复
bjrjk
2017-09-17 16:02:50 +08:00
加个记忆化搜索就行了,或者动态规划也行,稍后我写个代码放上来吧,有题目链接吗?
starvedcat
2017-09-17 16:04:52 +08:00
“连续吃宝物才可以前进”是什么意思?
hqtc
2017-09-17 16:16:01 +08:00
@starvedcat 就是字面意思啊,每次前进必须吃到东西啊,不能走空地。
helica
2017-09-17 16:17:36 +08:00
这不是 poj 那道滑雪吗
hqtc
2017-09-17 16:27:41 +08:00
@bjrjk 题目链接没有,我把自己写的蠢萌递归算法附上了。。你可以给稍微指点下,给个伪代码或者思路就好,感谢您的时间
hqtc
2017-09-17 16:28:05 +08:00
@helica 是吗,我不知道耶。。有没有链接什么的
hqtc
2017-09-17 16:31:34 +08:00
@helica google 了一下找到了。。http://poj.org/problem?id=1088, , 的确是一个意思
hqtc
2017-09-17 16:37:24 +08:00
@helica 想想还是不太一样。。。滑雪 4x4 连续同一个数字的话就不用动了。。这个问题得拿到最长的遍历值
bjrjk
2017-09-17 16:38:19 +08:00
@hqtc https://renjikai.com/luogu-p1434/ 送给楼主一个之前自己写过的化学的题解,c++版本的。
victor97
2017-09-17 16:42:17 +08:00
滑雪那道题可以看作是有向无环图,楼主的题意应该是无向有环图啊?这类图求最长路好像是 NP 问题。
bjrjk
2017-09-17 16:47:36 +08:00
@hqtc 总该有测试输入输出什么的吧……
bjrjk
2017-09-17 16:52:55 +08:00
@hqtc 如果是搞 OI/ACM 的话,应该只是输出最后的路径长度吧。
hqtc
2017-09-17 17:06:46 +08:00
@bjrjk 不是 ACM 是一个游戏对战比赛,公司搞的。。要给路径的。。。
messyidea
2017-09-17 18:00:36 +08:00
好像可以用网络流做
建一张图。添加 4 个点 S,s,T,t
S->s 流量为 1,费用为 0
t->T 流量为 1,费用为 0
s->所有有食物的格子,流量为 1,费用为 1
所有有食物的格子->t,流量为 1,费用为 0
所有有食物的格子->它能走到的有食物的格子,流量为 1,费用为 1

然后跑一下 S->T 最大费用最大流貌似就好了
路径的话 dfs 统计一下有流量的边就可以了
skadi
2017-09-17 18:37:42 +08:00
@messyidea 万物皆流👍😂
victor97
2017-09-17 18:54:37 +08:00
@messyidea 流量都是 1,意义在哪里?正环怎么处理?
messyidea
2017-09-17 19:19:13 +08:00
@victor97 想太简单了,确实不能处理环。

还需要把每个有食物的格子拆成两点 ai 和 bi
ai -> bi 流量为 1, 费用为 1
bi->能到的其它节点的 aj, 流量为 1,费用为 0
s->ai, 流量为 1, 费用为 0
S->s, 流量为 1,费用为 0
bi->t,流量为 1,费用为 0
t->T,流量为 1,费用为 0

很久没搞这个了,不知道现在有没有漏洞了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/391387

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX