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可能无法通过

     

    代码在此

    喵喵喵?喵喵喵! 喵喵喵......
  • 相关阅读:
    python Database Poll for SQL SERVER
    SQLAlchemy表操作和增删改查
    flask动态url规则
    flask配置管理
    一个Flask运行分析
    Function Set in OPEN CASCADE
    Happy New Year 2016
    Apply Newton Method to Find Extrema in OPEN CASCADE
    OPEN CASCADE Multiple Variable Function
    OPEN CASCADE Gauss Least Square
  • 原文地址:https://www.cnblogs.com/reverymoon/p/8858066.html
Copyright © 2011-2022 走看看