西西河

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

共:💬26 🌺15
全看分页树展 · 主题 跟帖
家园 一个算法描述:

对于每个节点i构造一个集合Pi,Pi包含所有小于i且没有后向边连接的节点。这样,对于没有后向路的图,Pi分别是:

P1=[],P2=[1],...,P[N]=[1,2,...,N-1]

而对于你给出的图则有

P1=[],P2=[1],P3=[1,2],P4=[1],P5=[1,2],P[6]=[1,2,3,4,5]

枚举路径的办法同一般的深度优先遍历类似,不过每次选取节点k加入路径的时候,要求Pk为空,

选取k后,对所有的P进行扫描,删除所有的k,

如果选k时候有多个空集备选,则记下回溯点,如果没有任何集合为空则需要回溯。

如果后向边不多的话,此算法应该是近似N平方的。

全看分页树展 · 主题 跟帖


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

Copyright © cchere 西西河