【刷题】【拓扑排序】菜肴制作
题目地址:[HNOI2015]菜肴制作 (nowcoder.com)
(1)DAG图与拓扑排序
博客地址:【笔记】DAG图与拓扑排序 - 心若笺诗 - 博客园 (cnblogs.com)
(2)题目要求的顺序其实不是简单的字典序:
(1)在满足所有限制的前提下,1 号菜肴”尽量“优先制作;(2)在满足所有限制,1号菜肴”尽量“优先制作的前提下,2号菜肴”尽量“优先制作;(3)在满足所有限制,1号和2号菜肴”尽量“优先的前提下,3号菜肴”尽量“优先制作;(4)在满足所有限制,1 号和 2 号和 3 号菜肴”尽量“优先的前提下,4 号菜肴”尽量“优先制作;(5)以此类推。
比如 2431 其实比 2314 排序更后,
其实这种顺序基本表示题目要用倒序:
因为倒序时,只需要优先放置更大的数字即可。
(3)考虑此问题的倒序解决
首先一定是反向建图,
问题可以简化为:有向图求是否有环,无环则求拓扑序
数据范围1e5,所以肯定不能BFS法(O(n*m)),尝试DFS方法解决此问题