Brief description:
给定 N 个带权开区间,(ai, bi, wi) .. .
现在要你挑选出一些区间使得总权值最大,并且满足数轴上任意一个点被覆盖的次数不超过 k。
( 1 <= k <= N <= 200, 1 <= ai < bi <= 100, 000, 1 <= wi <= 100, 000 .. .)
Analysis:
最大费用流。
构图:
1. (经典构图方案
先将区间端点离散化。之后对每个区间,加边 (li, ri, 1, wi) ..
再按顺序对每个端点加边 (i, i+1, k, 0) ..
2. (非主流神犇构图方案。。
以区间为点,直接拆成加边 (i, i’, 1, wi) .. . ( 不需要离散化。。
对于每个区间,分别加边 (s, i, 1, 0) 和 (i’, t, 1, 0) …
之后对区间排序。。对于任意两个区间 i, j,( i < j ) 如果没有交集,则加边 (i', j, 1, 0)..
然后求最大流不超过 k 的最大费用流。。。
。。神犇构图法。。(。。1000 ms+。。
External link:
http://poj.org/problem?id=3680
http://hi.baidu.com/graphis/item/b18de4a85dccd2e414329b2c
http://blog.sina.com.cn/s/blog_7c09163301011u67.html