zoukankan      html  css  js  c++  java
  • 「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-) 改图的最大流.

    代码

    代码挺好写的

    彩蛋

  • 相关阅读:
    OneProxy与其它数据库中间件的对比
    防御式编程
    google jam 比赛题(设计有问题)
    Python 代码性能优化技巧
    Python性能鸡汤
    如何避免重构带来的危险
    Linux/Unix工具与正则表达式的POSIX规范
    代码抽象层次2
    chinaunix:腾讯面试题
    C++异常处理小例
  • 原文地址:https://www.cnblogs.com/Sxy_Limit/p/13865703.html
Copyright © 2011-2022 走看看