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

代码

代码挺好写的

彩蛋

posted @ 2020-10-23 19:01  SxyLimit  阅读(113)  评论(0编辑  收藏  举报