C0907 [SDOI2011]工作安排

内存限制:256 MB 时间限制:1000 ms

题目描述

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

我们用一个由 $0$ 和 $1$ 组成的 $m\times n$ 的矩阵 $A$ 来描述每名员工能够制造哪些产品。矩阵的行和列分别被编号为 $1$~$m$ 和 $1$~$n$,$A_{i,j}$ 为 $1$ 表示员工 $i$ 能够制造产品 $j$,为 $0$ 表示员工 $i$ 不能制造产品 $j$。

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

对于员工 $i$,他的愤怒值与产品数量之间的函数是一个 $S_i+1$ 段的分段函数。当他制造第 $1$~$T_{i,1}$ 件产品时,每件产品会使他的愤怒值增加 $W_{i,1}$,当他制造第 $T_{i,1}+1$~$T_{i,2}$ 件产品时,每件产品会使他的愤怒值增加 $W_{i,2}$……为描述方便,设 $T_{i,0}=0$,$T_{i,s_{i+1}}=+∞$,那么当他制造第 $T_{i,j-1}+1$~$T_{i,j}$ 件产品时,每件产品会使他的愤怒值增加 $W_{i,j}$,$1≤j≤S_i+1$。

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

输入格式

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

第二行包含 $n$ 个正整数,第 $i$ 个正整数为 $C_i$;

以下 $m$ 行每行 $n$ 个整数描述矩阵 $A$;

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

第三行包含 $S_i+1$ 个正整数,其中第 $j$ 个正整数为 $W_{i,j}$。

输出

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

样例

样例输入 1

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

样例输出 1

24

提示

对于 $100\%$ 的数据,$1 \le m,n \le 250$,$0 \le S_i \le 5$,$0 \le A_{i,j} \le 1$,$0 < T_{i,j} < T_{i,j+1}$,$0 < W_{i,j} < W_{i,j+1}$,所有数据不大于$10^5$。