题目名称 | 2424. [POJ 3280]最便宜的回文 |
---|---|
输入输出 | palindrome.in/out |
难度等级 | ★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 512 MiB |
测试数据 | 10 |
题目来源 |
|
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:11, 提交:24, 通过率:45.83% | ||||
|
100 | 0.143 s | 11.92 MiB | C++ |
|
100 | 0.158 s | 9.51 MiB | C++ |
|
100 | 0.217 s | 11.81 MiB | C++ |
|
100 | 0.219 s | 18.99 MiB | C++ |
|
100 | 0.226 s | 19.00 MiB | C++ |
|
100 | 0.279 s | 11.78 MiB | C++ |
|
100 | 0.296 s | 12.08 MiB | C++ |
|
100 | 0.311 s | 11.93 MiB | C++ |
|
100 | 0.312 s | 34.37 MiB | C++ |
|
100 | 0.314 s | 11.96 MiB | C++ |
关于 最便宜的回文 的近10条评论(全部评论) |
---|
给定一个仅有小写字母构成的字符串,请你通过在字符串任意位置增加或删除小写字母使其变为回文。
例如,对于字符串“abcb”,可以通过在末尾增加“a”使其变为“abcba”、或者删除字符“a”,使其变为“bcb”、或者在开头增加“bcb”,使其变为“bcbabcb”。
但是现在增加、删除每个字符的成本可能是不同的,现在请你求解将给定字符串转化为回文的最小成本。
第$1$行包含两个整数$n,m(1\leq n\leq 26,1\leq m\leq 2000)$,分别表示给定成本的字符个数和字符串长度。
第$2$航给定一个字符串。
接下来$n$行,每行包含一个字符和两个整数,分别表示增加和删除该字符的成本($0\sim 10^4$)。
一行一个整数,表示将原字符串变为回文的最小成本。
3 4 abcb a 1000 1100 b 350 700 c 200 800
900
若在“abcb”末尾添加一个“a”,则得到“abcba”,成本是1000;若把开头的“a”删掉,则得到“bcb”,成本是1100;若在开头插入“bcb”,则得到“bcbabcb”,成本是350+200+350=900,这是最小成本。