首页 > 代码库 > Poj3680 Intervals

Poj3680 Intervals

这题比较经典,题意大致上就是给你n个点和m个区间,每个区间有一个正权值,让你选出一些区间,使得每个点都不会被覆盖超过k次,且选出的区间权值和最大。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

lyd:

首先把区间端点离散化,设原来的数值i离散化后的标号是c[i]。这样离散化之后,整个数轴被分成了一段段小区间。 1.建立S和T,从S到离散化后的第一个点连容量K,费用0的边。离散化后的最后一个点到T连容量K、费用0的边。 2.离散化后的相邻点之间(从i到i+1)连容量为K,费用为0的边。 3.输入的区间从离散化后的左端点到右端点连容量1、费用W的边。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

为什么要这样呢?为什么这样可行呢?