luogu#P2488. [SDOI2011] 工作安排

[SDOI2011] 工作安排

题目描述

你的公司接到了一批订单。订单要求你的公司提供 nn 类产品,产品被编号为 1n1 \sim n,其中第 ii 类产品共需要 CiC_i 件。公司共有 mm 名员工,员工被编号为 1m1 \sim m 员工能够制造的产品种类有所区别。一件产品必须完整地由一名员工制造,不可以由某名员工制造一部分配件后,再转交给另外一名员工继续进行制造。

我们用一个由 0011 组成的 m×nm \times n 的矩阵 AA 来描述每名员工能够制造哪些产品。矩阵的行和列分别被编号为 1m1 \sim m1n1 \sim nAi,jA_i,j11 表示员工 ii 能够制造产品 jj,为 00 表示员工 ii 不能制造产品 jj

如果公司分配了过多工作给一名员工,这名员工会变得不高兴。我们用愤怒值来描述某名员工的心情状态。愤怒值越高,表示这名员工心情越不爽,愤怒值越低,表示这名员工心情越愉快。员工的愤怒值与他被安排制造的产品数量存在某函数关系,鉴于员工们的承受能力不同,不同员工之间的函数关系也是有所区别的。

对于员工 ii,他的愤怒值与产品数量之间的函数是一个 Si+1S_i+1 段的分段函数。当他制造第 1Ti,11 \sim T_{i,1} 件产品时,每件产品会使他的愤怒值增加 Wi,1W_{i,1},当他制造第 Ti,1+1Ti,2T_{i,1}+1 \sim T_{i,2} 件产品时,每件产品会使他的愤怒值增加 Wi,2W_{i,2} ……为描述方便,设 Ti,0=0,Ti,si+1=+T_{i,0}=0,T_{i,s_{i+1}}=+\infty,那么当他制造第 Ti,j1+1Ti,jT_{i,j-1}+1 \sim T_{i,j} 件产品时,每件产品会使他的愤怒值增加 Wi,jW_{i,j}1jSi+11 \le j \le S_i+1

你的任务是制定出一个产品的分配方案,使得订单条件被满足,并且所有员工的愤怒值之和最小。由于我们并不想使用Special Judge,也为了使选手有更多的时间研究其他两道题目,你只需要输出最小的愤怒值之和就可以了。

输入格式

https://cdn.luogu.com.cn/upload/pic/1608.png

第一行包含两个正整数 mmnn,分别表示员工数量和产品的种类数;

第二行包含 nn 个正整数,第 ii 个正整数为 CiC_i

以下 mm 行每行 nn 个整数描述矩阵 AA

下面 mm 个部分,第 ii 部分描述员工 ii 的愤怒值与产品数量的函数关系。每一部分由三行组成:第一行为一个非负整数 SiS_i,第二行包含 SiS_i 个正整数,其中第 jj 个正整数为 Ti,jT_{i,j},如果 Si=0S_i=0 那么输入将不会留空行(即这一部分只由两行组成)。第三行包含 Si+1S_i+1 个正整数,其中第 jj 个正整数为 Wi,jW_{i,j}

输出格式

仅输出一个整数,表示最小的愤怒值之和。

2 3
2 2 2
1 1 0
0 0 1
1
2
1 10
1
2
1 6
24

提示

数据范围及约定

  • 存在 30%30\% 的数据,保证 1n,m301\le n,m\le 30
  • 均匀分布着约 30%30\% 的数据,满足 Si=0S_i = 0
  • 均匀分布着约 30%30\% 的数据,满足 Si1S_i \le 1(不包含上述 Si=0S_i = 0 的数据)。

对于全部数据,满足 1m,n2501\le m,n\le 2500Si50\le S_i\le 50Ai,j10\le A_{i, j}\le 10<Ti,j<Ti,j+10< T_{i, j}< T_{i, j + 1}0<Wi,j<Wi,j+10< W_{i,j} < W_{i, j + 1}。所有数据均不大于 10510^5