zoukankan      html  css  js  c++  java
  • 网络流 从0开始学建图

    1.HDU-3572

    题意:N个任务,每个任务有Pi(需要干多少天),Si(开始时间),Ei(结束时间),M个机器,一个机器一天最多处理一个任务,询问是否所有的任务都能完成。

    建图模型:

    s 向 [1, 500]天开始建立一条流量为m的边,然后对于每天来说,往可以去执行任务的点建立一条流量为1的边,每个任务往 t 建立一条流量为Pi的边。

    最后判断最大流和sum Pi是否相等。

    2.HDU-3388

    题意:填数问题。

    建图模型:从S -> 行之和 -> 格子 -> 列之和 -> T。 为了保证每个点都至少是1,从行之和里抽格子数目的流量,放到S里,往每个格子链接1的流量。

    最后看看流量确定格子的数值。

    3.HDU-2883

     题意:和 (1) 一样, 就是数据大小不一样。

    建图模型:将时间分成不同的单位格子, 然后每个任务与每个不同的单位时间建边。

     4.HDU-3879

    题意:最大权闭合子图

    建图模型:考虑一个最小割模型, 我们先将所有的正权值加入到答案里, 然后再把 s 与 所有的 正权点连边, t与所有的 负权点连边, 流量都为点权的绝对值。

    再把 原图中的边 也建立对应的流量为inf的边。

    这样考虑一个最小割, 我们只能将一个点从割到s这边, 或者是割到t这一边, 我们就是需要最小的代价, 将所有的点划分为1边就是答案了。

    5.HDU-3472

    题意:混合图判断欧拉路径

        1.首先判断图的连通性,若不连通,无解。

        2.然后任意定向无向边,计算每个点i的入度和出度之差deg[i]。若deg[i]为奇数,无解。

        3.设立源点s和汇点t,若某点i入度<出度,连边(s,i,-deg[i]/2),若入度>出度,连边(i,t,deg[i]/2);对于任意定向的无向边(i,j,1)。

        4.若有两个度数为奇数的点,假设存在欧拉路径,添加一条容量为1的边,构成欧拉回路,不影响结果。若全为偶数,直接最大流。

        5.若从S发出的边全部满流,证明存在欧拉回路(路径),否则不存在。

        ps:若要求输出路径,将网络中有(无)流量的边反向,加上原图的有向边,用套圈算法即可。

    转自 

    6.HDU-3315 

    题意:带预配边的费用流匹配。

    同样的费用的时候, 要优先选择预配边。

    将边权*最大边权。 然后预匹配边的权值+1。 这样会优先流过来这条边。

    7.HDU-4067

    题意:给定一副有向图, 有S点和T点, S点的出度=入度+1, T点的入度=出度+1, 其他点的出度==入度。

    现在图上的每条边都有保留这条边的权值,代价为a, 删除这条边的权值, 代价为b。

    先贪心的保留边/删除边。

    1.如果 a >= b, 保留这边, u的出度+1, v的入度+1, add(u, v, 1, b-a)

    2.如果 a <= b, 删除这边, add(v, u, 1, b-a).

    3.s的入度+1, t的出度+1.

    4.然后 S 往 入度-出度>0的点建边, 入度-出度<0的点建边。

    5.如果满流说明合法。

    8.HDU-3820 

    题意:给定一个n×m的矩阵, 现在有可以往矩阵里放金蛋 or 银蛋 or 不放蛋, 放了金蛋能得到aij的价值, 放了银蛋能得到bij的价值, 如果有一对金蛋相临就要减去s的价值,如果有一对银蛋相临就减去g的价值,求最大价值。

    建边方式:

    按奇偶建边。 将点分为奇偶, 然后将拆点分为左右点, 其中对于奇数点来说, S --- (aij) --- 左点 --- (inf) --- 右点 --- (bij) --- T

    对于偶数点来说,  S --- (aij) --- 左点 --- (inf) --- 右点 --- (bij) --- T。

    然后,对于相临的格子来说再把左边的银点往右边的银点建边, 左边的金点往右边的金点建边。

    9.HDU-3947

    转自:传送门

    ************

    1. HDU 6634

  • 相关阅读:
    2653 区间xor
    c++位运算
    洛谷P1233 木棍加工
    c++背包问题
    FOC基本调试方法[转]
    用于下载AD官网登录账号:User name: fuxin918@fuxin918.com Passeword: s6c0W1w8
    STC10F10XE定时器中断输出10KHz的方波程序
    学习DSP(三)安装C2833x/C2823x C/C++ 头文件和外设示例-压缩包
    学DSP(二):目标芯片28335,GO!
    学DSP(一):开始
  • 原文地址:https://www.cnblogs.com/MingSD/p/11299637.html
Copyright © 2011-2022 走看看