#P1157. LITTLE SHOP OF FLOWERS

LITTLE SHOP OF FLOWERS

题目描述

你希望以最美观的方式布置花店的橱窗。现在有 FF 束不同种类的花,以及至少同样多数量的花瓶,这些花瓶排成一行并固定在架子上。花瓶按从左到右的顺序编号为 11VV,其中 VV 是花瓶的总数,11 是最左边的花瓶,VV 是最右边的花瓶。花束可以移动,并且每束花都有一个唯一的编号,范围在 11FF 之间。这些编号决定了花束在花瓶中的摆放顺序:对于任意两束花 iijj,如果 i<ji < j,那么花束 ii 必须放在花束 jj 左边的某个花瓶中。例如,假设你有三束花:编号为 11 的杜鹃花(azaleas)、编号为 22 的秋海棠(begonias)和编号为 33 的康乃馨(carnations),那么杜鹃花必须放在秋海棠左边的某个花瓶中,而秋海棠必须放在康乃馨左边的某个花瓶中。如果花瓶数量多于花束数量,多余的花瓶将保持空置。每个花瓶只能放一束花。

每个花瓶具有独特的特性(就像花束一样),因此将某束花放入某个花瓶会产生一定的美观值,用一个整数表示。这些美观值以一个表格的形式给出,如下所示。空置的花瓶的美观值为 00

花束 \ 花瓶 1 2 3 4 5
1 (杜鹃花) 7 23 -5 -24 16
2 (秋海棠) 5 21 -4 10 23
3 (康乃馨) -21 5 -20 20

根据表格,杜鹃花放在花瓶 22 中会非常美观(美观值为 2323),但放在花瓶 44 中会非常难看(美观值为 24-24)。

你的目标是找到一种摆放方案,使得所有花束的美观值之和最大,同时满足花束编号的顺序要求。如果存在多个最优方案,只需输出其中一种即可。

输入

第一行包含两个整数:FFVV
接下来的 FF 行,每行包含 VV 个整数,表示美观值表格 AijA_{ij},其中 AijA_{ij} 是第 ii 束花放入第 jj 个花瓶的美观值。

输入约束:

  • 1F1001 \leq F \leq 100,表示花束的数量,编号为 11FF
  • FV100F \leq V \leq 100,表示花瓶的数量。
  • 50Aij50-50 \leq A_{ij} \leq 50,表示花束 ii 放入花瓶 jj 的美观值。

输出

第一行输出你的摆放方案的美观值之和的最大值。

样例输入

3 5
7 23 -5 -24 16
5 21 -4 10 23
-21 5 -4 -20 20

样例输出

53

来源

国际信息学奥林匹克竞赛(IOI)1999