「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-) 改图的最大流.

代码

代码挺好写的

彩蛋

原文地址:https://www.cnblogs.com/Sxy_Limit/p/13865703.html