zoukankan      html  css  js  c++  java
  • [CEOI2008]order --- 最小割

    [CEOI2008]order

    题目描述:

    有N个任务,M种机器,每种机器你可以租或者买过来.

    每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成。

    现在给出这些参数,求最大利润

     

    输入格式:

    第一行给出 N, M (1 <= N <= 1200, 1 <= M <= 1200) 下面将有N个任务的数据。

    每组数据第一行给出完成这个任务能赚到的钱([1,5000])及有多少道工序

    接下来若干行每行两个数,分别描述完成工序所需要的机器编号及租用它的费用([1,20000])

    最后M行,每行给出购买机器的费用([1,20000])

     

    输出格式:

    最大利润

     

     

    题解?

    也许吧,学习大佬的风格,采用简短的话语来描述。

    也算是一种记录吧.

    本题,额,比较简单的最小割。

    把图抽象出来:

     

    分析割(最小割):

    对于每一个任务,割掉s与它的连边意味着无需后面的额外花费

    对于每一个机器,如果购买了,那么租用的边不可能被割掉(最小)

    对于每一个机器,如果未购买,可以选择对于每个选择的任务单独租用

    也就是说,图可以保证让花费最小

    那么总收益 - 最小花费 = 最大收益

     

    注意常数因子,朴素Dinic可能无法通过

     

    代码在此

    喵喵喵?喵喵喵! 喵喵喵......
  • 相关阅读:
    A
    博弈论
    K
    快速幂
    基数排序
    计数排序
    KMP求字符串最小循环节
    二分图多重匹配
    hdu2818行列匹配+排序
    二分图行列匹配与最大匹配必须边
  • 原文地址:https://www.cnblogs.com/reverymoon/p/8858066.html
Copyright © 2011-2022 走看看