你有 $k$ 個堆疊,編號從 $1$ 到 $k$。每個堆疊中包含若干個物品。每個物品有兩個屬性:
一個大寫英文字母代表編號。
一個正整數代表分數。
你可以執行任意次操作直到無法操作為止:
操作:
選擇兩個非空且不同的堆疊 $i$ 和 $j$($1 \le i, j \le k$ 且 $i \neq j$)。
檢查堆疊 $i$ 和堆疊 $j$ 頂部的物品。
如果這兩個堆疊頂部物品的字母相同,則執行消除:
從堆疊 $i$ 和 $j$ 中移除頂部物品。
獲得的分數為這兩個被移除物品的分數總和。
如果字母不同,則無法執行操作。
目標是執行一系列操作,使得你最終獲得的總分數最大。
例如範例測資1,共有 $3$ 個堆疊,若先取編號 $1$ 和編號 $3$ 堆疊頂部的物品累積獲得 $2$ 分,再選擇編號 $1$ 號編號 $2$ 堆疊頂部的物品累積 $6$ 分,此時已無法繼續操作。然而可以先取編號 $1$ 和編號 $3$ 堆疊頂部的物品累積獲得 $2$ 分,再取編號 $1$ 和編號 $3$ 堆疊頂部的物品累積獲得 $5$ 分,最後再取編號 $1$ 和編號 $3$ 堆疊頂部的物品累積獲得 $7$ 分,如此可以獲得更高的分數。
第一行包含一個整數 $k$ ($2 \le k \le 6$),表示堆疊的數量。
接下來 $k$ 行,每行描述一個堆疊的內容。第 $i$ 行描述堆疊 $i$。
每行首先是一個整數 $n_i$,表示堆疊 $i$ 中物品的數量。
接著是 $n_i$ 對 (字母, 分數) 的描述,按照從堆頂到堆底的順序給出。
字母 是一個大寫英文字母('A'-'Z')。
分數 是一個正整數 $s$ ($1 \le s \le 10$ )。
保證每個堆疊最多 $12$ 個物品。
$30$ 分: $k = 3$
$70$ 分: 無限制
輸出一個正整數,代表能獲得的最大分數。
3 3 A 1 B 2 C 1 3 B 2 A 2 A 1 3 A 1 B 1 C 1
7
3 3 X 1 A 1 A 1 2 Y 1 A 1 3 Z 1 A 1 A 1
0
| 編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
| 54079 |
|
r626 | 128 | 2025-11-18 20:48 | |
| 54100 |
|
r626 | 85 | 2025-11-22 02:42 | |
| 54068 |
|
r626 | 263 | 2025-11-17 11:18 |