拓扑排序
拓扑排序-总结
母题
给定一个 DAG(有向无环图),如果从
拓扑排序的目标是将所有节点排序,使得排在前面的节点不能依赖于排在后面的节点。
例题
https://www.luogu.com.cn/problem/B3644
https://www.luogu.com.cn/record/178163992
习题
福建省历届夏令营-排序
核心思路是对于每次操作都进行一次拓扑排序,然后看是否出现循环依赖或者无法确定(即
Minimum Longest Trip G
拓扑排序求最长路,然后进行分层,按照拓扑排序的逆序操作进行第二次DP即可。
[CSP-S2020] 函数调用
本质上函数的嵌套调用就是一个DAG,利用拓扑排序考虑 add
和 mul
运算即可。考虑母子节点的计算关系。
AcWing 164. 可达性统计
还是利用拓扑排序的逆序DP,每个位置 bitset
的按位或优化32倍常数。
[AcWing 477. 神经网络](AcWing 477. 神经网络)
直接按照要求按照拓扑序计算。
车站分级
考察虚拟节点优化
总结
总体分两类:
- 按照拓扑序计算答案。
- 按照逆拓扑序计算答案。
可能要做多次,或者像函数调用这样抽象,然后重点考察如何合并信息。也可以与其他数据结构,如 bitset
一起使用。或者同时运用两类方法进行DP。
边数过多可以考虑车站分级做法。
本文作者:wscqwq
本文链接:https://www.cnblogs.com/wscqwq/p/18429330
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2023-09-24 消失之物