zoukankan      html  css  js  c++  java
  • POJ 3686 & 拆点&KM

    题意:

      有n个订单,m个工厂,第i个订单在第j个工厂生产的时间为t[i][j],一个工厂可以生产多个订单,但一次只能生产一个订单,也就是说如果先生产a订单,那么b订单要等到a生产完以后再生产,问n个订单用这m个工厂全部生产完需要最少的时间是多少。

    SOL:

      与平时的带权二分图不同的是这个问题相当于一个多重匹配的问题,且每个点的权值需要考虑它之前的点,其实可以比如说每个工厂搞一个set什么的维护一下然后乱搞(不知道行不行看着好像挺好)。

      正这考虑不是很方便于是我们可以反着来,最后被生产的点只需要它自己的时间,当其在倒数第k个生产时,它的消耗就变成了k×t。那么我们就能把每个工厂拆成n个点,边权相应计算,跑一边KM即可。

      正难则反,这是非常有用的思想方法。

      打就不打了,图论的精髓在于建图,其它都是模板(做题无聊了bb一下还是需要的)。

      

      不以建图为前提地做图论题都是耍流氓。

    Sometimes it s the very people who no one imagines anything of. who do the things that no one can imagine.
  • 相关阅读:
    LAMP搭建示例
    MySQL主从
    list多字段去重
    mysql按照某一个条件进行分组统计,同时又要保证一个相同字段的数据只统计一次
    sentinel自定义异常处理
    sentinel规则持久化
    zookeeper
    shiro
    iframe之间传递参数
    自定义标签
  • 原文地址:https://www.cnblogs.com/YCuangWhen/p/5200923.html
Copyright © 2011-2022 走看看