poj3280.cpp
来自「本人最近在acm.pku.edu.cn上通过的程序」· C++ 代码 · 共 40 行
CPP
40 行
//poj3280
#include <algorithm>
using namespace std;
int n, m;
char str[2010];
int cost[26];
int f[2010][2010];
int main()
{
int i, j, l;
scanf("%d%d%s", &n, &m, str);
getchar();
char c;
int a, b;
for (i = 0; i < n; i++)
{
c = getchar();
scanf("%d%d", &a, &b);
getchar();
cost[c - 'a'] = min(a, b);
}
memset(f, 0, sizeof(f));
for (l = 0; l < m; l++)
for (i = 0; i + l < m; i++)
{
j = i + l;
if (i == j || i + 1 == j && str[i] == str[j]) f[i][j] = 0;
else
{
f[i][j] = min( f[i + 1][j] + cost[str[i] - 'a'], f[i][j - 1] + cost[str[j] - 'a'] );
if (str[i] == str[j] && f[i + 1][j - 1] < f[i][j])
f[i][j] = f[i + 1][j - 1];
}
}
printf("%d\n", f[0][m - 1]);
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?