刷题心得—拓扑序在图上DP中的应用

刷题心得—拓扑序在图上DP中的应用

参考CF721C Journey这道题。一道图上DP。DAG上DP。这个题目需要用到拓扑排序。如果不拓扑排序,直接在一个入度为0的点进去开始按边走转移,会出现错误。

为什么呢?

我们知道,DP是分阶段的。这个阶段的划分在转移的设计中显得至关重要。那么相对于线性DP的容易划分阶段,对于这种图上DP,我们更需要注意阶段划分的正确性。

拓扑序有什么性质?

在DAG中,任意一条边\((x\rightarrow y)\),保证\(x\)在拓扑序中的出现顺序在\(y\)前面。

这样的话,我们就保证了DAG转移的时候,对于每个点,可以转移得到它的节点都已经被我们处理过了。也就保证了一个阶段处理完再处理下一个阶段。进而保证了DP的无后效性。

hin重要。

posted @ 2020-10-23 18:36  Seaway-Fu  阅读(300)  评论(0编辑  收藏  举报