第 10 场 AtCoder Regular Contest
堆叠拼图AI (CI翻译)
m
n
1
1
1
- 色ボーナス:色ごとに決められた得点が、山に含まれている個数分与えられます。
- コンボボーナス:同じ色のブロックが
$x$個続いて積まれている場合、コンボボーナス配点$Y$に応じて$Y×(x-1)$点が与えられます。 - 全色ボーナス:山の中に
$m$色のブロックがそれぞれ$1$個以上含まれていると$Z$点が与えられます。
n m Y Z
c_1 p_1
c_2 p_2
:
:
c_m p_m
b_1b_2 ‥‥ b_n
$1$行目に$n, m, Y, Z$が半角スペースで区切られて与えられる。$n$はブロックの個数で$1≦n≦5,000$を満たす。$m$はブロックの色の総数で$1≦m≦10$を満たす。$Y$はコンボボーナス配点で$-100≦Y≦100$を満たす。$Z$は全色ボーナス配点で$-10,000≦Z≦10,000$を満たす。$n, m, Y, Z$は全て整数である。
$2$行目からの$m+1$行目までの$m$行で色ボーナスの配点がそれぞれ与えられる。$c_i$は$i(1≦i≦m)$番目に与えられるブロックの色である。$p_i$は$c_i$に対する色ボーナスの配点である。$c_i$は英大文字(A-Z)、$p_i$は$-100≦p_i≦100$を満たす。- 配点は重複して与えられない(
$x≠y$ならば$c_x≠c_y$)
$m+2$行目には落ちてくるブロックの順序を表す長さ$n$の文字列が与えられる。$b_j$は$j(1≦j≦n)$番目に落ちてくるブロックの色を表している。$b_j$は$c_1,c_2,...,c_m$のいずれかである。
1
5 3 3 5
R 1
G 1
B 1
RGBRR
13
- 全てのブロックを山に積むと、 により、
$5+3+5=13$点が与えられます。 - 色ボーナス:どの色も配点が
$1$点なので、$1$点 ×$5$個$= 5$点- コンボボ−ナス:Rが
$2$個連続しているので、$3×(2-1)=3$点 - 全色ボーナス:全ての色が
$1$つ以上山に積まれているので、$5$点
- コンボボ−ナス:Rが
- いずれかのブロックを捨てるとこの点数よりも低くなるので、答えは
$13$点です。
3 3 3 5
R 1
G 3
B 2
RBR
5
- 全てのブロックを山に積むと、 により、
$4$点です。 - 色ボーナス:
$1$点$×2$個$+2$点$×1$個$=4$点- 連続していないのでコンボボーナス、Gが含まれていないので全色ボーナスはそれぞれ
$0$点
- 連続していないのでコンボボーナス、Gが含まれていないので全色ボーナスはそれぞれ
- しかし、Bを捨ててRRを山に積むと、 で、
$5$点が最高得点です。 - 色ボーナス:
$1$点$×2$個$=2$点- コンボボーナス:
$3×(2-1)=3$点
- コンボボーナス:
8 3 5 3
R 1
G 1
B 1
RRGRRBRR
31
- 図
$(a)$のように順に$8$個のブロックが落ちてきます。 - ブロックを全部山に積むと、図
$(b)$のように、$2$個のコンボが$3$組できます。 - また、全色ボーナスもつくので、
$1$点 ×$8$個 +$5$点$× (2-1) × 3$組$+ 3$点$= 26$点です。 - しかし、図
$(c)$のようにRのみを山に積むと、$1$点 ×$6$個 +$5$点$× (6-1) + 0$点$= 31$点になります。 - Rだけ山に積むとき最高得点となり、
$31$が答えです。

8 3 5 3
R 1
G 100
B 1
RRGRRBRR
126
- 全部積んだ場合(図
$(a)$):$107$点 +$5$点$× (2-1) × 3$組$+ 3$点$= 125$点 - Rのみを積んだ場合(図
$(b)$):$6$点 +$5$点$× (6-1) + 0$点$= 31$点 - B以外を積んだ場合(図
$(c)$):$106$点 +$5$点$× \{(2-1) + (4-1)\} + 0$点$= 126$点 - したがって、最高得点は
$126$点です。

题目描述
有 $n$ 个方块按顺序落下。你可以选择将每个方块堆到山上,或将其丢弃。请计算能够获得的最高分。
得分由以下三种奖金组成:
- 颜色奖金:根据每种颜色预先确定的分数,按照该颜色在山中出现的数量获得相应分数。
- 连击奖金:当山中连续堆叠了
$x$个相同颜色的方块时,根据连击奖金分值$Y$获得$Y×(x-1)$分。 - 全色奖金:当山中包含
$m$种颜色的方块,且每种颜色至少有$1$个时,获得$Z$分。
输入格式
n m Y Z
c_1 p_1
c_2 p_2
:
:
c_m p_m
b_1b_2 ‥‥ b_n
- 第
$1$行以半角空格分隔给出$n, m, Y, Z$。 $n$表示方块的数量,满足$1≦n≦5,000$。$m$表示方块颜色的总数,满足$1≦m≦10$。$Y$表示连击奖金分值,满足$-100≦Y≦100$。$Z$表示全色奖金分值,满足$-10,000≦Z≦10,000$。$n, m, Y, Z$均为整数。
- 第
$2$行至第$m+1$行共$m$行,给出每种颜色的奖金分值。 $c_i$表示第$i(1≦i≦m)$个给出的方块颜色。$p_i$表示颜色$c_i$对应的颜色奖金分值。$c_i$为英大写字母(A-Z),$p_i$满足$-100≦p_i≦100$。- 不会重复给出奖金分值(若
$x≠y$,则$c_x≠c_y$)。
- 第
$m+2$行给出一个长度为$n$的字符串,表示落下方块的顺序。 $b_j$表示第$j(1≦j≦n)$个落下的方块颜色。$b_j$是$c_1,c_2,...,c_m$中的某一个。
输出格式
输出能够获得的最高分。
样例
5 3 3 5
R 1
G 1
B 1
RGBRR
13
- 将所有方块都堆到山上时,根据各项奖金可获得
$5+3+5=13$分。 - 颜色奖金:每种颜色的分值都是
$1$分,因此为$1$分 ×$5$个$= 5$分。- 连击奖金:有
$2$个 R 连续堆叠,因此为$3×(2-1)=3$分。 - 全色奖金:山中堆叠了每种颜色至少
$1$个方块,因此获得$5$分。
- 连击奖金:有
- 丢弃任意一个方块都会使分数低于该分数,因此答案为
$13$分。
3 3 3 5
R 1
G 3
B 2
RBR
5
- 将所有方块都堆到山上时,根据各项奖金可获得
$4$分。 - 颜色奖金:
$1$分 ×$2$个$+2$分 ×$1$个$=4$分。- 由于没有连续的相同颜色方块,连击奖金为
$0$分;由于不包含 G,全色奖金也为$0$分。
- 由于没有连续的相同颜色方块,连击奖金为
- 但是,丢弃 B 并将 RR 堆到山上时,可以获得最高分
$5$分。 - 颜色奖金:
$1$分 ×$2$个$=2$分。- 连击奖金:
$3×(2-1)=3$分。
- 连击奖金:
8 3 5 3
R 1
G 1
B 1
RRGRRBRR
31
- 如图
$(a)$所示,8 个方块依次落下。 - 将所有方块都堆到山上时,如图
$(b)$所示,可以组成 3 组各包含$2$个方块的连击。 - 此外还可以获得全色奖金,因此总分为
$1$分 ×$8$个$+ 5$分$× (2-1) × 3$组$+ 3$分$= 26$分。 - 但是,如图
$(c)$所示,只将 R 堆到山上时,总分为$1$分 ×$6$个$+ 5$分$× (6-1) + 0$分$= 31$分。 - 只堆叠 R 时可以获得最高分,因此答案为
$31$。

8 3 5 3
R 1
G 100
B 1
RRGRRBRR
126
- 堆叠全部方块时(图
$(a)$):$107$分$+ 5$分$× (2-1) × 3$组$+ 3$分$= 125$分。 - 只堆叠 R 时(图
$(b)$):$6$分$+ 5$分$× (6-1) + 0$分$= 31$分。 - 不堆叠 B 时(图
$(c)$):$106$分$+ 5$分$× \{(2-1) + (4-1)\} + 0$分$= 126$分。 - 因此,最高分为
$126$分。
AI (CI翻译)
题目信息
题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(gpt-6.1-sol),如有出入请以原文为准。