zoukankan      html  css  js  c++  java
  • 二分图网络流做题记录

    01 P4589 [TJOI2018]智力竞赛

    二分一手答案,我们发现就是要覆盖指定的链,跑一边传递闭包就是 DAG 点覆盖了。

    AC 记录

    02 P3973 [TJOI2015]线性代数

    先转化一手式子:

    [D=sum_{i=1}^n a_i imes(sum_{j=1}^n a_j imes b_{j,i}-c_i)=sum_{i=1}^nsum_{j=1}^n a_ia_jb_{i,j}-sum_{i=1}^n a_ic_i ]

    考虑每个位置选 (0) 还是选 (1) 明示最大闭合子图,于是我们可以考虑这样的模型:

    image
    (洛谷题解的图)

    考虑每一种割的形态,解方程可得:

    [ax=b_{x,x}+frac{1}{2}(b_{x,y}+b_{y,x}),ay=b_{y,y}+frac{1}{2}(b_{x,y}+b_{y,x})\bx=c_x,by=c_y\v=frac{1}{2}(b_x+b_y) ]

    我们发现扩展到多个点的情况只需要把 (ax,ay) 后面的东西变成对于所有 (y) 的和就好了。

    AC 记录

    03 CF863F Almost Permutation

    简单题,每个位置对应的所有值都建一个点,限制就给位置以及对应的值连个边,让流量做到最大流即可,而费用采用经典方法,连 (n) 条边,第 (i) 条费用为 (2i-1) 即可。

    AC 记录

    04 P4249 [WC2007]剪刀石头布/CF1264E Beautiful League

    考虑简单容斥一手,我们要算不是三元环的数量最小值。

    观察可得不是三元环等价于一个点出度为二,一个点入度为二,一个点出度为一入度为一,那么实际上这等价于存在一个点入度为二,也就是说答案是 (sum_{i=1}^n {indeg_ichoose 2})

    这个东西是单增的,于是直接套路建图一波带走。

    AC 记录

    AC 记录

    05 CF802C Heidi and Library (hard)/CF132E Bits of merry old England

    考虑保持一个书不好表示,可以看作卖掉这个书再买进来。

    可以考虑每个点拆成两个点 (v,v'),然后这样建图:(设 (pre_i)(i) 这个颜色上一次出现的位置)

    [S ightarrow v(1,c_{a_i})\v ightarrow v'(1,0)\v' ightarrow T(1,0)\i ightarrow i+1(k-1,0)\i-1 ightarrow pre_i'(1,-c_{a_i}) ]

    AC 记录

    AC 记录

    AC 记录(这个输出方案太恶心了/ll)

    06 AT4505 [AGC029F] Construction of a tree

    07 P6967 [NEERC2016]Delight for a Cat

    08 CF1288F Red-Blue Graph

    09 P4617 [COCI2017-2018#5] Planinarenje

    10 P1971 [NOI2011] 兔兔与蛋蛋游戏

  • 相关阅读:
    Django前后端分离项目部署
    python虚拟环境设置
    pandas高级操作
    Auth模块
    Django中间件
    CSRF(Cross-site request forgery)跨站请求伪造
    cookie与session组件
    创建多对多表关系的三种方式
    form组件
    python2和python3的区别
  • 原文地址:https://www.cnblogs.com/xiaoziyao/p/15542857.html
Copyright © 2011-2022 走看看