【题目链接】
【思路要点】
- 观察数据范围以及类似于容量限制的一列条件,考虑用最大流解题。
- 一点对答案的贡献可以看做一个(食物、牛、饮料)的三元组,其中食物、牛、饮料中的每个元素仅能使用一次,且食物-牛和牛-饮料均可以根据给出的关系相互匹配。
- 建立分层图,对中间的元素(牛)进行拆点限流,运行最大流即可。
- 时间复杂度\(O(Dinic(2*N+F+D,F+D+N*F+N*D))\)。
【代码】
【题目链接】
【思路要点】
- 观察数据范围以及类似于容量限制的一列条件,考虑用最大流解题。
- 一点对答案的贡献可以看做一个(食物、牛、饮料)的三元组,其中食物、牛、饮料中的每个元素仅能使用一次,且食物-牛和牛-饮料均可以根据给出的关系相互匹配。
- 建立分层图,对中间的元素(牛)进行拆点限流,运行最大流即可。
- 时间复杂度\(O(Dinic(2*N+F+D,F+D+N*F+N*D))\)。
【代码】