zoukankan      html  css  js  c++  java
  • 网络流(2)

    A.无限之环

      首先将题意转化为存在一种方案使得所有水管都满流,那么考虑如何建图。

      将网格图黑白染色,原汇点分别向黑白点连边,黑点向周围的白点连边,将每个点拆成5个点,一个表示原点用来限流,另外四个分别连向上下左右表示水管的朝向。接下来只要考虑每种情况对应的建图即可。

      对于只有一个朝向的水管,向原方向连费用为0的边,对立的方向连费用为2的边,表示需要翻转两次才能到对应方向,相邻方向费用为1.

      两个朝向,直管不用管,L形的两个原方向分别向对立方向连1,注意连边不能改变L形状,我让L形能转成直管调了一年。。。。

      T形方法很多,我的方法是中间的方向连费用为-1的边,对立方向费用为1,其它为0,同时直接给ans++。

      分类讨论真爽

    B.星际竞速

      同样可以用《80人环游世界》的鬼畜建边方法水过,也可以打上下界,但是这题有更帅的解法。

      将每个点拆成x,y两个点,源点向所有x连边,费用为0,向所有y连边,费用为能力爆发的费用。对于有边的点对$i->j$,从$x_{i}$连向$y_{j}$,费用为路径长度,每个y向汇点连边。

      由于保证了每个点都经过一次,这样建图是正确的。

    C.千钧一发

      类似《数字配对》,题意为同时不满足两个条件的点对不能同时选,可以转化为最小割模型。

      奇数点对一定满足条件1,偶数点对一定满足条件2,所以不合法点对只会出现在奇偶之间,建立二分图即可。

    D.老C的方块

      非常神奇的一道题。。颓了标签yy了一下以为自己会了,然后疯狂wa最后发现伪了。。

      讨厌的图形全是四个方块,所以可以想到四色染色,注意一个合法染色的条件是,所有不合法图形都可以表示为一个固定的顺序,且所有对应顺序对应的图形都是不合法的。

    F.线性代数

      化简,最后发现选择某个位置填一需要付出一定代价,两个位置一起填1可以获得对应收益,显然是最大获利。

      用人员雇佣的方法就可以n个点了。

    H.海拔

      观察题意可以发现,最终高度必然为0或1,且0和1必然形成分别形成一个联通块。

      若不成为一个联通块,那么将某个联通块全部填成另一个数不会使答案变差。

      所以最小割就完了,以为isap跑平面图很快然而被卡了。。。所以这都是个平面图了转一下对偶图就可以了。

  • 相关阅读:
    Django——model(建表,增删改查,外键,多对多)
    Django——model中的参数
    Django——路由系统,视图(接收文件等)
    Django——创建Django工程,app,模板语言
    前端——jQuery
    前端——DOM(添加标签,属性操作,各个事件,操作标签)
    前端——CSS
    Velocity模版自定义标签
    Velocity模版自定义标签
    Velocity模版自定义标签
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12019291.html
Copyright © 2011-2022 走看看