「CF1426E Rock, Paper, Scissors」
题目大意
\(\mathcal{Alice}\) 和 \(\mathcal{Bob}\) 玩"摇滚(\(Rock\)),剪纸(\(Paper\)),剪刀(\(Scissors\))",现在给出两人每种出发的总数,求 \(\mathcal{Alice}\) 最少和最多的获胜局数.
分析
网络流建图入门题.
萌新刚学网络流,所以还是一点都不会/kk
先考虑求可以获胜的最大值,那么显然是 \(\mathcal{Alice}\) 的 \(Rock\) 与 \(\mathcal{Bob}\) 的 \(Scissors\) 相遇是最好的,\(\mathcal{Alice}\) 的 \(Paper\) 与 \(\mathcal{Bob}\) 的 \(Rock\) 相遇是最好的,\(\mathcal{Alice}\) 的 \(Scissors\) 与 \(\mathcal{Bob}\) 的 \(Paper\) 相遇是最好的,所以可以简单理解后建出以下图:
源点是 \(\mathcal{Alice}\),汇点是 \(\mathcal{Bob}\),对于 \(\mathcal{Alice}\) 可以连出三个点,分别表示 \(Rock,Paper,Scissors\),边的流量自然是该种可以出的数量,对于 \(\mathcal{Bob}\) 同理.因为需要迎,所以在 \(\mathcal{Alice}\) 可以赢 \(\mathcal{Bob}\) 的出法间链上流量为 \(\infty\) 的边,答案就是该图的最大流.
会最大值的做法后自然也可以简单分析出最小值的图:
区别与刚才的是,刚才要在 \(\mathcal{Alice}\) 获胜的出法之间连边,现在要在 \(\mathcal{Alice}\) 不获胜的出法之间连边,答案就是 \(n-\) 改图的最大流.
代码
代码挺好写的