西西河

主题:再次请教河里的高手,一个图论问题 -- 棒棒糖

共:💬26 🌺15 新:
全看分页树展 · 主题 跟帖
家园 如果节点数不多,可否这样做?

我的思路是dynamic programming:假设路径长度为N,先计算出N=2的所有情况,存储路径上的节点号。

然后开始利用N的结果计算N+1的路径,对于有回路的,就prune.

这里面可以优化的细节很多,首先,存储路径上节点的方式,可以帮助后来loop detection + prune。其次,存储路径上面,可以根据 i<j -> {i,j}一定存在来节省空间。最后,如果N太大,可以用divide and conquer的方法,只存储部分结果(i.e. N/2),然后用时间换空间,计算另外一半路径。

具体的程序就不写了,主要是说说思路。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河