第 10 场 AtCoder Regular Contest
C
堆叠拼图
積み上げパズル
AtCoder
⌀ 2011
原题
← BD →

堆叠拼图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$ 点
  • いずれかのブロックを捨てるとこの点数よりも低くなるので、答えは $13$ 点です。

3 3 3 5
R 1
G 3
B 2
RBR

5

  • 全てのブロックを山に積むと、 により、$4$ 点です。
  • 色ボーナス:$1$ 点 $×2$ 個 $+2$ 点 $×1$ 個 $=4$ 点
    • 連続していないのでコンボボーナス、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)$ のように、$2$ 個のコンボが $3$ 組できます。
  • また、全色ボーナスもつくので、$1$ 点 × $8$ 個 + $5$ 点 $× (2-1) × 3$ 組 $+ 3$ 点 $= 26$ 点です。
  • しかし、図 $(c)$ のようにRのみを山に積むと、$1$ 点 × $6$ 個 + $5$ 点 $× (6-1) + 0$ 点 $= 31$ 点になります。
  • Rだけ山に積むとき最高得点となり、$31$ が答えです。

image

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$ 点です。

image

题目描述

有 $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$。

image

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$ 分。

imageAI (CI翻译)

题目信息
题号
arc010_3
时间限制
2 s
内存限制
64 MB

题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(gpt-6.1-sol),如有出入请以原文为准。