动态规划训练5 [回文词]

【问题描述】
回文词是一种对称的字符串——也就是说,一个回文词,从左到右读和从右到左读得到的结果是一样
的。任意给定一个字符串,通过插入若干字符,都可以变成一个回文词。你的任务是写一个程序,求出将
给定字符串变成回文词所需插入的最少字符数。
比如字符串“
Ab3bd ”,在插入两个字符后可以变成一个回文词(“ dAb3bAd ”或“ Adb3bdA ”)。然而,
插入两个以下的字符无法使它变成一个回文词。
【输入文件】
第一行包含一个整数
N ,表示给定字符串的长度, 3<=N<=5000
第二行是一个长度为 N 的字符串,字符串由大小写字母和数字构成。
【输出文件】
一个整数,表示需要插入的最少字符数。
【输入样例】
5
Ab3bd
【输出样例】

2


思路:

考虑都有哪些决策,用opt[i][j]表示序列[i...j]变成回文词,所需要插入的最少字符数。

那么可以知道如果s[i] == s[j]的情况下opt[i][j] = opt[i+1][j-1]

而如果s[i] != s[j],那么在s[i..j]的右面添加一个s[i],或者是在左边添加一个s[j],那么再把两边去除掉,就转化到opt[i+1][j-1]了

所以状态转移方程就非常的显然了

if s[i] == s[j]:

opt[i][j] = min(opt[i+1][j-1],opt[i][j-1]+1,opt[i+1][j]+1)

else:

opt[i][j] = min(opt[i][j-1]+1,opt[i+1][j]+1)


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity引擎及编辑器C#源代码发布

3月23日我们在GitHub上发布了Unity引擎和编辑器的C#源代码&#xff0c;仅供Unity学习参考使用。为何如此决定为了了解或改进自己的Unity项目&#xff0c;一直以来有用户对Unity .NET程序集反汇编&#xff0c;我们的服务条款明确允许这样做。但反汇编有二大缺点&#xff1a;尽管…

40、使用javassit操作运行时字节码文件

1、是什么 Javassit是一个功能包&#xff0c;作用类似于java的反射&#xff0c;用于操作运行时字节码文件&#xff0c;实现动态编程&#xff0c;但性能高于反射。 2、怎么用&#xff1f; 首先需要获取存放class文件的容器ClassPool&#xff0c;根据全类名获取一个CtClass对象…

jzoj3844-统计损失【树形dp,换根法】

正题 题目链接:https://jzoj.net/senior/#main/show/3844 题目大意 一棵树&#xff0c;求每条路径的点权乘积之和。 解题思路 若只考虑从xxx出发往子树的路径&#xff0c;那么有fxaxax∗∑x−>yfyf_xa_xa_x*\sum_{x->y}f_yfx​ax​ax​∗x−>y∑​fy​ 定义gig_ig…

动态规划训练6 [统计单词个数]

【问题描述】 给出一个长度不超过 200 的由小写英文字母组成的字母串 ( 约定&#xff1a;该字母串以每行 20 个字母的方式输 入&#xff0c;且保证每行一定为 20 个 ) 。要求将此字母串分成 k 份 (1<k<40) &#xff0c;且每份中包含的单词个数加起来总数 最大 ( …

k8s实战为aspnetcore.webapi微服务注入配置信息

1、浅析k8s配置信息Secret以密文的形式存储数据&#xff0c;可以用来保存一些敏感信息&#xff0c;例如&#xff1a;OAuth tokens、私钥、密码、数据库连接、事件总线连接等。ConfigMap以明文的形式存储数据&#xff0c;可以用来保存一些非敏感信息&#xff0c;例如&#xff1a…

10、mysql数据表中数据的查询(2)

介绍一下mysql中查询的重中之重&#xff0c;连接查询 创建student和teacher表&#xff0c;表中数据如下&#xff1a; studentteacher 交叉连接查询 查询结果是连接的几个表中满足条件的相关联的数据的交集 sql SELECT s.id sid, s.name sname , t.id tid ,t.name tname FRO…

jzoj3845-简单题【dp】

正题 题目链接:https://jzoj.net/senior/#main/show/3845 题目大意 美丽的仙人掌定义为&#xff1a; 一个仙人掌&#xff0c;第iii到jjj号点(i<j)(i<j)(i<j)一定存在一条经过了j−i1j-i1j−i1个点的简单路径。 给出一张无向图&#xff0c;选出最多的边使得它是一个…

微软将人工智能嵌入Windows 10更新

下一轮Windows 10更新为Windows应用程序与人工智能功能的集成提供了新途径&#xff0c;将直接令数以亿计的个人电脑、平板、IoT边缘设备等Windows设备受益。新版Windows ML平台可供开发者直接通过Visual Studio将预先训练好的深度学习模型与自己的应用程序集成&#xff0c;在导…

24、mysql连接线程的show和kill

1、登陆到mysql服务器 Mysql –h ip –u 用户名 –p 密码; 2、检查当前连接的线程 show full processlist 或 show processlist 或 selelct * from information_schema.processlist; Id&#xff1a;线程标识 User&#xff1a;当前用户 Host&#xff1a;sql的来源&#xff0c;i…

动态规划训练8 [E - Multiplication Puzzle POJ1651]

Multiplication Puzzle POJ - 1651 题意&#xff1a; 在一个序列中&#xff0c;拿走一个数字&#xff0c;那么得分就是这个数字以及它相邻的两个数字&#xff0c;这三个数字的乘积。求最小得分。 这道题乍一看感觉是区间DP&#xff0c;但是需要逆向思考的技巧。 记dp[i][k]…

牛客-复读数组

正题 题目链接:https://ac.nowcoder.com/acm/contest/1103/A 题目大意 将一个长度为nnn的数组复制成kkk份&#xff0c;然后每个区间的值是一个区间中不同的数的数量&#xff0c;求每个非空区间的值和。 解题思路 若一个区间长度>n>n>n那么他们的值是固定的&#xf…

ASP.NET Core MVC 2.1 顶级参数验证

本文讨论ASP.NET Core 2.1中与ASP.NET Core MVC / Web API控制器中的模型绑定相关的功能。虽说这是一个功能&#xff0c;但从我的角度来看&#xff0c;它更像是一个错误修复&#xff01;请注意&#xff0c;我使用的是 NET Core 2.1 Preview 1&#xff0c;正式版发布后&#xff…

25、sql分析命令explain和desc

explain和desc命令的效果相同&#xff0c;命令格式如下&#xff1a; mysql> explain SELECT s.id sid, s.name sname , t.id tid ,t.name tname FROM student s LEFT JOIN teacher t ON s.name t.name; --------------------------------------------------------------…

P2290-[HNOI2004]树的计数【组合数,Prufer序列】

正题 题目大意:https://www.luogu.org/problem/P2290 题目大意 一棵树无根树第iii个点的度数为did_idi​&#xff0c;求树的数量。 解题思路 更具pruferpruferprufer序列的推论我们可以知道答案就是(n−2)!∏i1n(di−1)!\frac{(n-2)!}{\prod_{i1}^n(d_i-1)!}∏i1n​(di​−1…

动态规划训练9 [Brackets POJ - 2955 ]

Brackets POJ - 2955 再明显不过的区间DP的题目了&#xff0c;要求求出给出符号式中最大匹配的括号数。 考虑区间[l,r]&#xff0c;如果str[l]与str[r]匹配了&#xff0c;那么转移方程为dp[l][r] max(dp[l][r],dp[l1][r-1] 2); 然后考虑将区间分成2部分 dp[l][r] max(dp[l…

.net core2.0下Ioc容器Autofac使用

Autofac基本使用Autofac是一款轻量级的IOC框架&#xff0c;使用率上还是挺高的&#xff0c;官方网站http://autofac.org&#xff0c;源码下载地址https://github.com/autofac/Autofac。下面以狗的列子来介绍autofac&#xff0c;nuget搜索Autofac进行安装public interface IDog{…

java实现下载时进度条提示

1、实现原理 计算出已经处理的数据记录数与所有需要导出的数据记录数的比例&#xff0c;根据每一个登陆用户的不同将比例存入缓存中&#xff0c;前台设计一个定时器&#xff0c;每隔一段时间去缓存中获取比例&#xff0c;然后根据比例来展示一下下载的进度。 2、具体代码实现 …

动态规划训练10 [Coloring Brackets CodeForces - 149D]

西安交大 软件53 蔡少斐 整理Coloring Brackets CodeForces - 149D 题目大意&#xff1a; 给定合法的括号序列&#xff0c;让你给括弧上色&#xff0c;并且上色时一定要满足3个要求&#xff1a; &#xff08;1&#xff09;每个括号要么被上红色&#xff0c;要么被上蓝色&…

微软重组变两大事业部:Windows主管离职

微软CEO纳德拉通过内部邮件宣布&#xff0c;整个公司进行重大重组&#xff0c;划分为两个新的事业部(部门)&#xff0c;同时Windows业务主管Terry Myerson(特里梅尔森)将离开微软。Terry Myerson最为人诟病的就是推倒了Windows Mobile而打造全新的Windows Phone&#xff0c;结果…

jzoj3846-七天使的通讯【二分图判定】

正题 题目链接:https://jzoj.net/senior/#main/show/3846 题目大意 长度nnn的直线&#xff0c;mmm条线&#xff0c;将它们分成两边&#xff0c;使同一边不交叉&#xff0c;求是否有方案。 解题思路 将会交叉的直线之间连接边&#xff0c;然后判断是否是二分图即可。 codecod…