以前看这道题的时候,拓扑排序搞出来就不会压缩状态了,这几天学会了用bitset这个神奇的东西就把这道题补了。
bitset每八位占一个字节。
既然是有向无环图,那么一定可以将这张图的拓扑排序求出来,那么对于拓扑序列中后面的点一定无法到达前面的点,前面的点能到达的点一定在他之后(但他之后的点不一定都能被他到达)
故先求出拓扑排序,再按照拓扑排序倒序的顺序计算可达的点(用bitset状态压缩)。
上图:《算法竞赛进阶指南》 --李煜东著。
空间复杂度的话,八个bitset位占用一个字节,
以前看这道题的时候,拓扑排序搞出来就不会压缩状态了,这几天学会了用bitset这个神奇的东西就把这道题补了。
bitset每八位占一个字节。
既然是有向无环图,那么一定可以将这张图的拓扑排序求出来,那么对于拓扑序列中后面的点一定无法到达前面的点,前面的点能到达的点一定在他之后(但他之后的点不一定都能被他到达)
故先求出拓扑排序,再按照拓扑排序倒序的顺序计算可达的点(用bitset状态压缩)。
上图:《算法竞赛进阶指南》 --李煜东著。
空间复杂度的话,八个bitset位占用一个字节,