poj3280Cheapest Palindrome
给定一个字符串S,字符串S的长度为M(M≤2000),字符串S所含有的字符的种类的数量为N(N≤26),然后给定这N种字符Add与Delete的代价,求将S变为回文串的最小代价和。
Input
第一行:两个由空格分隔的整数 N 和 M
第二行:这一行给出了恰好 M 个字符,表示初始状态下的ID字符串
接下来的 N 行:每一行给出了由空格分隔的三部分。首先是一个字符,保证出现在了输入的字符串中。接下来是两个整数,表示你增添这个字符的代价,然后是删除这个字符的代价
Output
你只需要输出一行,且只输出一个整数。表示你将给定字符串变成回文串所需的最小代价。
Sample Input
3 4
abcb
a 1000 1100
b 350 700
c 200 800
Sample Output
900
dp[i][j]表示使区间[i,j]变为回文串所要耗费的最少能量。
include
using namespace std;
int dp[2005][2005],w[130]; //这里之前写进main()函数,提交一直显示runtime error,听人说貌似数组开的大的话,一般都是开在全局变量。
int main()
{
int n,m,a,b;
char s[2100],ch;
while(cin>>n>>m)
{
// getchar();
cin>>s;
for(int i=0;i<n;i++)
{
cin>>ch>>a>>b;
w[ch-'a']=min(a,b);
}
for(int i=m-1;i>=0;i--)
{
for(int j=i+1;j<m;j++)
{
if(s[i]==s[j]) dp[i][j]=dp[i+1][j-1];
else dp[i][j]=min(dp[i+1][j]+w[s[i]-'a'],dp[i][j-1]+w[s[j]-'a']);
}
}
cout<<dp[0][m-1]<<endl;
}
return 0;
}
poj3280Cheapest Palindrome的更多相关文章
- poj3280Cheapest Palindrome(记忆化)
链接 真的1A了.. 一开始想复杂了 想着补全再删 没想好 后来想到递归 大的回文串是由小的推过来的 一直递归下去 对于当前的i,j可以选择保留或者删除 选个最小的 #include <iost ...
- POJ3280--Cheapest Palindrome(动态规划)
Keeping track of all the cows can be a tricky task so Farmer John has installed a system to automate ...
- 【动态规划】POJ3280- Cheapest Palindrome
[题目大意] 给出一个字符串,可以删除或添加一些字符,它们各自会消耗价值.问最少消耗多少价值,可以使得字符串变成回文的. [思路] 事实上删除或添加字符的价值只需要保持较小的那一个.假设当前要将(j, ...
- PALIN - The Next Palindrome 对称的数
A positive integer is called a palindrome if its representation in the decimal system is the same wh ...
- [LeetCode] Longest Palindrome 最长回文串
Given a string which consists of lowercase or uppercase letters, find the length of the longest pali ...
- [LeetCode] Palindrome Pairs 回文对
Given a list of unique words. Find all pairs of distinct indices (i, j) in the given list, so that t ...
- [LeetCode] Palindrome Permutation II 回文全排列之二
Given a string s, return all the palindromic permutations (without duplicates) of it. Return an empt ...
- [LeetCode] Palindrome Permutation 回文全排列
Given a string, determine if a permutation of the string could form a palindrome. For example," ...
- [LeetCode] Palindrome Linked List 回文链表
Given a singly linked list, determine if it is a palindrome. Follow up: Could you do it in O(n) time ...
随机推荐
- [LOJ 3101] [Luogu 5332] [JSOI2019]精准预测(2-SAT+拓扑排序+bitset)
[LOJ 3101] [Luogu 5332] [JSOI2019]精准预测(2-SAT+拓扑排序+bitset) 题面 题面较长,略 分析 首先,发现火星人只有死和活两种状态,考虑2-SAT 建图 ...
- 2019 Multi-University Training Contest 2 - 1009 - 回文自动机
http://acm.hdu.edu.cn/showproblem.php?pid=6599 有好几种实现方式,首先都是用回文自动机统计好回文串的个数. 记得把每个节点的cnt加到他的fail上,因为 ...
- python 模块调用的几种方式
在python里面又很多模块,或者引用第三方模块,python 模块调用的几种方式,下面详细解说 1,import 模块名 2,from 模块 import 模块里面的小功能 3,from 模块 ...
- 攻防世界--The_Maya_Society
测试文件:https://adworld.xctf.org.cn/media/task/attachments/17574fc423474b93a0e6e6a6e583e003.zip 我们直接将Li ...
- 定制团队自己的 Vue template
一,我们使用vue-cli 可以快速初始化vue.js的项目,官方提供了webpack,pwa,browserify-sipmple,等常用template 二.置知识1,模板结构template:该 ...
- Sql Server 显示插入Identity字段
先像下面这样写 SET IDENTITY_INSERT [表名] ON ...INSERT INTO ... 别忘了在插入完数据后再执行下面的语句 SET IDENTITY_INSERT [表 ...
- [Tyvj2032]升降梯上(最短路)
[Tyvj2032]升降梯上 Description 开启了升降梯的动力之后,探险队员们进入了升降梯运行的那条竖直的隧道,映入眼帘的是一条直通塔顶的轨道.一辆停在轨道底部的电梯.和电梯内一杆控制电梯升 ...
- CSS3弹性盒模型flexbox布局
属性介绍 display: flex | inline-flex; (适用于父类容器元素上) 定义一个flex容器,内联或者根据指定的值,来作用于下面的子类容器.· box:将对象作为弹性伸缩盒显示. ...
- 移动端触摸、点击事件优化(fastclick源码学习)
移动端触摸.点击事件优化(fastclick源码学习) 最近在做一些微信移动端的页面,在此记录关于移动端触摸和点击事件的学习优化过程,主要内容围绕fastclick展开.fastclick githu ...
- 论云时代最经济的APM工具的姿势
阿里云于大概两月前商业化了一款APM产品 ARMS ,正式填补了 APM 上的云上监控的空白.那么作为阿里云官方 APM 工具,ARMS 和其他传统厂商的 APM 服务相比有什么特点呢? 通过和国内其 ...