POJ3280Cheapest Palindrome(区间dp)

PowerBI参数化实战:3分钟搞定动态数据源切换(附常见错误排查) 本文详细介绍了PowerBI参数化实战技巧,教你3分钟实现动态数据源切换。通过创建参数、改造查询和测试切换三步,轻松应对多环境部署与团队协作中的路径问题,并附上常见错误排查指南,有效提升报表的可维护性和工作效率。 阅读详情

Language:
Cheapest Palindrome
Time Limit: 2000MS Memory Limit: 65536K
Total Submissions: 6227 Accepted: 3032

Description

Keeping track of all the cows can be a tricky task so Farmer John has installed a system to automate it. He has installed on each cow an electronic ID tag that the system will read as the cows pass by a scanner. Each ID tag's contents are currently a single string with length M (1 ≤ M ≤ 2,000) characters drawn from an alphabet of N (1 ≤ N ≤ 26) different symbols (namely, the lower-case roman alphabet).

Cows, being the mischievous creatures they are, sometimes try to spoof the system by walking backwards. While a cow whose ID is "abcba" would read the same no matter which direction the she walks, a cow with the ID "abcb" can potentially register as two different IDs ("abcb" and "bcba").

FJ would like to change the cows's ID tags so they read the same no matter which direction the cow walks by. For example, "abcb" can be changed by adding "a" at the end to form "abcba" so that the ID is palindromic (reads the same forwards and backwards). Some other ways to change the ID to be palindromic are include adding the three letters "bcb" to the begining to yield the ID "bcbabcb" or removing the letter "a" to yield the ID "bcb". One can add or remove characters at any location in the string yielding a string longer or shorter than the original string.

Unfortunately as the ID tags are electronic, each character insertion or deletion has a cost (0 ≤ cost ≤ 10,000) which varies depending on exactly which character value to be added or deleted. Given the content of a cow's ID tag and the cost of inserting or deleting each of the alphabet's characters, find the minimum cost to change the ID tag so it satisfies FJ's requirements. An empty ID tag is considered to satisfy the requirements of reading the same forward and backward. Only letters with associated costs can be added to a string.

Input

Line 1: Two space-separated integers:  N and  M 
Line 2: This line contains exactly  M characters which constitute the initial ID string 
Lines 3.. N+2: Each line contains three space-separated entities: a character of the input alphabet and two integers which are respectively the cost of adding and deleting that character.

Output

Line 1: A single line with a single integer that is the minimum cost to change the given name tag.

Sample Input

3 4
abcb
a 1000 1100
b 350 700
c 200 800

Sample Output

900

Hint

If we insert an "a" on the end to get "abcba", the cost would be 1000. If we delete the "a" on the beginning to get "bcb", the cost would be 1100. If we insert "bcb" at the begining of the string, the cost would be 350 + 200 + 350 = 900, which is the minimum.

Source







#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 2005

int dp[N][N],n,m;
int add[N],del[N];
char a[N],ch[N];

int main()
{
	int i,j;
	while(~scanf("%d%d",&n,&m))
	{
		scanf("%s",a);
		int x,y;
		for(i=0;i<n;i++)
		{
			scanf("%s%d%d",ch,&x,&y);
			add[ch[0]-'a']=x;
			del[ch[0]-'a']=y;
		}

		memset(dp,0,sizeof(dp));

		for(i=m-1;i>=0;i--)
		  for(j=i+1;j<m;j++)
			{
			   dp[i][j]=min(dp[i+1][j]+del[a[i]-'a'],dp[i+1][j]+add[a[i]-'a']);
			   int temp=min(dp[i][j-1]+del[a[j]-'a'],dp[i][j-1]+add[a[j]-'a']);
			   dp[i][j]=min(temp,dp[i][j]);
			   if(a[i]==a[j])
					dp[i][j]=min(dp[i][j],dp[i+1][j-1]);
			}

		printf("%d\n",dp[0][m-1]);
	}
	return 0;
}


人形机器人电源系统硬件开发:从原理图设计到PCB布局的完整流程 人形机器人是“移动的智能终端”,其电源系统如同“心脏+血管”:既要为大脑(主控)、肌肉(电机)、感官(传感器)提供稳定能量,又要在有限体积内应对高动态负载(如跳跃时电机瞬间大电流)。本文聚焦“硬件开发”维度,覆盖从需求分析到PCB制板的完整流程,适合硬件工程师、机器人爱好者快速掌握工程实战方法。 阅读详情

相关推荐

状态错误CS0234命名空间“Windows”中不存在类型或命名空间名“Management”(是否缺少程序集引用?)

解决源码编译UE打包失败问题

五百零一 2338

POJ 3280 Cheapest Palindrome【DP之经典回文问题】

原题链接:http://poj.org/problem?id=3280 CSUST:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=20437#problem/C 转载来自:http://blog.sina.com.cn/s/articlelist_1836701754_0_1.html Cheapest Palindrom

free斩 1646

electron windows设置镜像地址环境变量报错npm error `ELECTRON_MIRROR` is not a valid npm option

如果你是在使用某个特定的脚本或配置文件,请检查该文件中是否有不正确的配置项,并进行相应的修正。确保你遵循electron的官方安装指南,并且没有包含不必要的或错误的配置选项。如果问题依然存在,可以查看npm的官方文档或者相关社区获取更多帮助。

qq_36158551的博客 3322

POJ 3280 Cheapest Palindrome(区间dp)

POJ 3280 Cheapest Palindrome(区间dp) 此题为取两端的区间dp。 分情况讨论: 1.ai=aja_i=a_jai​=aj​,dp[i][j]=dp[i+1][j−1]dp[i][j]=dp[i+1][j-1]dp[i][j]=dp[i+1][j−1] 否则,分四种情况,删左边,删右边,左边加s[j]s[j]s[j],右边加s[i]s[i]s[i]。 时间复杂度:O(n2)O(n^2)O(n2) code // Problem: Cheapest Palindrome //

Harris-H的博客 579

深入浅出:UE4类型系统完整构建过程详解

UE4的类型系统是一个复杂但设计精巧的架构,它通过静态代码生成和运行时构建的完美配合,实现了强大的反射功能。理解这个过程不仅有助于解决开发中的问题,也能让你更好地利用UE4的各种高级特性。就像建造一栋大楼需要经过设计、备料、框架、装修、验收等多个阶段,UE4类型系统的构建也是一个多阶段、精细化的过程。每个阶段都有其特定的职责,共同协作完成从源代码到运行时对象的转换。

m0_45371381的博客 911

ARM Cortex平台NEON指令集优化实战指南

本文为ARM Cortex平台开发者提供了一份全面的NEON指令集优化实战指南。文章从NEON的SIMD架构原理讲起,详细介绍了开发环境搭建、NEON内联函数与自动向量化两种核心编程方法、关键数据类型与指令,并通过图像饱和运算、矩阵乘法等实战案例,深入解析了性能调优技巧与常见避坑指南,旨在帮助开发者充分释放ARM处理器的并行计算潜力。

weixin_29162439的博客 259

poj3280

题目的意思是给定一个字符串,让你用最

yrj95427的专栏 588

【点云概述】什么是点云、来源、种类、特点、处理?

【点云概述】什么是点云、来源、种类、特点、处理?点云(point cloud)是空间中点的数据集,可以表示三维形状或对象,通常由三维扫描仪获取。点云中每个点的位置都由一组笛卡尔坐标 ( X , Y , Z ) (X, Y, Z) (X,Y,Z)描述,有些可能含有色彩信息 ( R , G , B ) (R, G, B) (R,G,B)或物体反射面强度(Intensity)信。

智慧空间实验室 9813

【poj 3280】 Cheapest Palindrome 题意&题解&代码(C++)

poj dp

曾经追梦的happy时光 720

RK3568笔记五十四:SORT实时目标追踪

YOLOv5具备目标检测的功能,把视频分解成多幅图像并逐帧执行时,如果视频帧中有多个目标,如何知道一帧中的目标和上一帧是同一个对象就是目标跟踪的工作。DeepSort是实现目标跟踪的算法,从sort(simple online and realtime tracking)演变而来,使用卡尔曼滤波器预测所检测对象的运动轨迹,匈牙利算法将它们与新的检测目标相匹配。结合YOLOv5和DeepSORT可以在实时场景中实现高效的目标检测和跟踪。

788

基于STM32设计的电能质量控制系统_353

本项目基于STM32F103RCT6微控制器设计了一套电能质量控制系统,实现了对火焰、烟雾、环境温湿度、电压、电流及功率等多项参数的实时监测与报警。系统通过MQ2烟雾传感器、火焰传感器、SHT30温湿度传感器及电力参数采集模块采集数据,采用高电平触发有源蜂鸣器进行异常报警。采集的数据通过ESP8266无线模块以AP+TCP模式上传至基于Qt开发的手机APP和电脑上位机,实现远程实时监控和历史数据管理。系统配备1.44寸LCD显示屏,实现本地数据显示。软件采用Keil5开发,采用寄存器编程方式,提高系统响应速

253

POJ-3280

Cheapest Palindrome Time Limit:2000MS Memory Limit:65536K Total Submissions:10301 Accepted:4931 Description Keeping track of all the cows can be a tricky task s...

weixin_30437481的博客 327

小程序数据采集(3):PC端微信小程序降维调试与流量数据获取详解

本文提出了一种针对PC端微信小程序的逆向分析方法,通过利用PC端基于Chromium架构的天然优势,实现无需Root的降维打击。文章详细介绍了如何开启CEF远程调试协议、基于DevTools Protocol实现流量劫持、对抗PC端安全防线以及获取小程序本地存储数据的技术方案。相比移动端严苛的环境,PC端小程序在调试接口、网络拦截和数据存储等方面存在显著漏洞,为爬虫开发提供了更便捷的突破口。

数据知道的博客 825

poj(3280)Cheapest Palindrome(区间dp)

题目链接:http://poj.org/problem?id=3280 题意:给出一个由m中字母组成的长度为n的串,给出m种字母添加和删除花费的代价,求让给出的串变成回文串的代价。 分析:我们知道求添加最少的字母让其回文是经典dp问题,转化成LCS求解。这个是一个很明显的区间dp 我们定义dp [ i ] [ j ] 为区间 i 到 j 变成回文的最小代价。 那么对于dp【

大神养成中..... 5558

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

POJ 3280 Cheapest Palindrome 【区间DP】

题目链接 题意 给你一串字符串,并给出添加以及删除(在任意位置)每种字符的花费,问把这个字符串变成回文串所需的最少花费 分析 经典的区间DP 状态 设 dp[i][j]⇔将子串S(i,j−1)变成回文串的最小花费 习惯设成前闭后开区间 状态转移方程 如果当前子串最前面和最后面的字符本来就相同,当前的最小花费就等于里面的子串的最小花费。而若不...

a18235146924的博客 92

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

POJ3280 Cheapest Palindrome(区间dp)

我们可以在字符串的任何位置添加或删除字符,产生一个比原始字符串更长或更短的字符串。行:每行包含三个空格分隔的实体:一个输入字母表的字符和两个整数,分别是增加和删除该字符的费用。标签,以便无论奶牛从哪个方向走过,它们的读数都一样。的奶牛无论正着走还是倒着走,读数都是一样的;第1行: 一行有一个整数,是改变给定名称标签的最小成本。标签是电子的,每个字符的插入或删除都有一个成本。标签的内容和插入或删除每个字母的成本,找出改变。标签的最小成本,使其满足约翰的要求。,成本依据添加或删除的字符的不同而不同。

zaiyang遇见 559

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

POJ - 3280Cheapest Palindrome-经典区间DP

POJ - 3280 Cheapest Palindrome Time Limit: 2000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Submit Status Description Keeping track of all the cows ca

qq_18661257的专栏 1248

POJ 3280 Cheapest Palindrome(区间DP)

嗯... 题目链接:http://poj.org/problem?id=3280 这道题首先要清楚:对于构成一个回文串,删去一个字符和加上一个字符是等效的,所以我们取花费较少的情况。 转移方程为:dp[i][j] = dp[i-1][j-1](s[i]==s[j])因为已经构成回文串,并且dp[i-1][j-1]是最优的。       dp[i][j] = min(d...

weixin_30871905的博客 735

POJ - 3280 Cheapest Palindrome 区间DP

传送门:POJ3280 题意:给定一个字符串,要将其变成回文串,删除一个字母和添加一个字母都有不同的花费,问最小花费是多少。 思路:这题我真是没有思路,太弱了。。 正解:dp[i][j]表示将[i,j]区间的字符串变成回文串的最小花费,然后又如下转移: 如果s[i] == s[j]  那么 dp[i][i] = dp[i + 1][j - 1] 否则 dp[i][j] = min(dp[

WA是一笔财富 306

区间dp poj3280 Cheapest Palindrome

还是很害怕这种字符串的题目的,但是这题细想起来,,又并不是想象中那么难 题意:添加或者删除某些字符,使原串变成回文串 设dp[i][j]表示使[i,j]区间变成回文串所需要的最小代价 当i>j或者i==j的时候,认为dp[i][j]等于0 那么dp[i][j]会从哪些地方转移过来呢 首先,当S[i]==S[j]时候,因为想让[i,j]变成回文串,那么[i+1,

qwb的博客 856

POJ3280Cheapest Palindrome(区间DP)

跟踪所有奶牛可能是一项棘手的任务,所以农夫约翰安装了一个系统来自动化这个过程。他在每头奶牛身上安装了一个电子ID标签,系统会在奶牛经过扫描仪时读取它们。每个ID标签的内容目前是一个长度为M(1 ≤M≤ 2,000)的字符串,由N(1 ≤N≤ 26)个不同符号(即小写罗马字母表)组成。奶牛是调皮的生物,有时会试图欺骗系统,倒着走。

2301_80635769的博客 1055

poj3280 Cheapest Palindrome[区间DP]

poj我怎么一天到晚做的全是普及组CSP-J类的题目啊 发现回文中心肯定是在串内部的。而一个串两端如果不一样,肯定是要动的。也就是说$S_{i...j}$只要动一端,看剩下来部分minvalue。于是这是一个基于区间的字符串DP。 设$f_{i,j}$表示区间为回文串的最小代价,如果一个串两头不同,则从$f_{i+1,j}+del_i/add_i和f_{i,j-1}+del_j/...

dianer2977的博客 112

[区间dp]Cheapest Palindrome POJ3280

Keeping track of all the cows can be a tricky task so Farmer John has installed a system to automate it. He has installed on each cow an electronic ID tag that the system will read as the cows pass by a scanner. Each ID tag's contents are currently a singl

Cloth的博客 364

poj 3280 Cheapest Palindrome 区间dp

《挑战》练习题,基础区间dp。

ned_chu的博客 513

poj 3280 Cheapest Palindrome(区间dp)

点击:http://poj.org/problem?id=3280 Description Keeping track of all the cows can be a tricky task so Farmer John has installed a system to automate it. He has installed on each cow an electronic

Vision 422

[poj3280]Cheapest Palindrome_区间dp

Cheapest Palindrome poj-3280     题目大意:给出一个字符串,以及每种字符的加入代价和删除代价,求将这个字符串通过删减元素变成回文字符串的最小代价。     注释:每种字符都是小写英文字符,1<=代价cost<=1000,字符串长度<=2000.       想法:通过之前两道区间dp的铺垫,对区间dp有了一个大概的了解,但是这道题无...

dianan0938的博客 104
上一篇: poj2955 Brackets (区间dp)
下一篇: poj 1141 Brackets Sequence(区间dp)
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值