poj 1159 Palindrome 【LCS】

笔记——Oracle19c Oracle阅读笔记 阅读详情

任意门:http://poj.org/problem?id=1159

 

解题思路:

LCS + 滚动数组

 

AC code:

#include <cstdio>
#include <iostream>
#include <algorithm>
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
const int MAXN = 5e3+10;

char a[MAXN], b[MAXN];
int dp[3][MAXN];

int main()
{
    int len;
    scanf("%d", &len);
    scanf("%s", a+1);
    for(int i = len; i >= 1; i--)
        b[i] = a[len-i+1];

    for(int i = 1; i <= len; i++)
    {
        for(int j = 1; j <= len; j++){
            if(a[i] == b[j]){
                dp[i%2][j] = dp[(i-1)%2][j-1]+1;
            }
            else{
                dp[i%2][j] = max(dp[(i-1)%2][j], dp[i%2][j-1]);
            }
        }
    }
    int ans = len-dp[len%2][len];
    printf("%d\n", ans);

    return 0;
}

 

2023华为od机试真题【恢复数字序列】C++ 2023华为od机试真题【恢复数字序列】C++ 对于一个连续正整数组成的序列,可以将其拼接成一个字符串,再将字符串里的部分字符打乱顺序。如序列8 9 10 11 12,拼接成的字符串为89101112,打乱一部分字符后得到90811211,原来的正整数10就被拆成了0和1。现给定一个按如上规则得到的打乱字符的字符串,请将其还原成连续正整数序列,并输出序列中最小的数字. 输入描述 阅读详情

相关推荐

一文讲透什么是ADC/DAC中的DDC、DUC、采样率以及数据率等概念

摘要:ADC/DAC中的采样率与数据率概念不同,采样率是转换器的时钟速率,而数据率是数字输出的实际速率。抽取通过滤波降低数据速率,提升信噪比但牺牲带宽;内插则通过插零和滤波提高采样率,将镜像信号移远但增加延迟和功耗。JESD204B标准的高速转换器需平衡通道数与串行速率,内插/抽取技术是关键。文章还解析了DDC、DUC的应用及优缺点,为高速数据转换设计提供参考。(150字)

weixin_49761275的博客 4273

POJ 1159 Palindrome(字符串变回文:LCS)

POJ 1159 Palindrome(字符串变回文:LCS) http://poj.org/problem?id=1159 题意: 给你一个字符串, 问你做少需要在该字符串中插入几个字符能是的它变成一个回文串. 分析: 首先把原字符串和它的逆串进行匹配, 找出最长公共子序列. 那么最长公共子序列的字符串肯定是一个回文串. 所以原串剩下的部分是不构成回文的. 我们只需要添加剩下部分的字符到对应位置, 原串自然就变成了一个回文. 所以本题的解为: n 减去 (原串与逆

code 1154

QGroundControl或者华科尔地面站安装完打不开问题解决

QGroundControl 华科尔 打不开

wv112406的博客 4923

POJ1159---Palindrome(dp,LCS)

POJ1159---Palindrome(dp,LCS) 题意理解: 给定一个字符串,问给这个字符串添加多少字符可以使得其为字符串。emmm,其实是个最长公共子序列问题,原序列长度-原序列和逆序列的最长公共子序列就是所求的答案(也就是添加的都是不在最长公共子序列的字符,去平衡一下) 最长公共子序列: 最长公共子序列(LCS) dp[i][j]:字符串s1…si和字符串t1…tj

sgh666666的博客 232

2024年【MCM/ICM】美国大学生数学建模竞赛优秀论文(免费下载)

美国大学生数学建模竞赛(MCM/ICM)由美国数学及其应用联合会主办,是最高的国际性数学建模竞赛,也是世界范围内最具影响力的数学建模竞赛,一般也指数学建模竞赛。赛题内容涉及经济、管理、环境、资源、生态、医学、安全、等众多领域。竞赛要求三人(本科生和研究生均可参加)为一组,在四天时间内,就指定的问题完成从建立模型、求解、验证到论文撰写的全部工作,体现了参赛选手研究问题、解决方案的能力及团队合作精神。为现今各类数学建模竞赛之鼻祖。

weixin_43608857的博客 1845

SAP交货单过账避坑指南:序列号处理、Buffer清理与BAPI提交回滚的那些事儿

本文深入解析SAP交货单过账中的序列号处理、Buffer清理与BAPI提交回滚等关键问题,提供WS_DELIVERY_UPDATE和BAPI_OUTB_DELIVERY_CONFIRM_DEC的实战优化方案。通过详细的技术分析和最佳实践,帮助开发者避免常见陷阱,提升交货单处理的稳定性和效率。

weixin_31155097的博客 432

poj 1159 Palindrome LCS一维滚动数组优化

原题地址 http://poj.org/problem?id=1159最长公共子序列问题LCS:给出两个子序列A,B, 如 A B C B D A B B D C A B A 最长公共子序列为4: BCBA 递推公式: dp(i,j)为A,B当前长度为i,j的LCSdp(i,j)=dp(i-1,j-1)+1 while A[i]==B[j] d

Song 1277

引以为戒:一个“看不见”的空格,导致上下文超限——从 `llama-server` 错误说起

文章摘要: 本文分享了Qwen工程团队在部署llama-server时遇到的参数失效问题:明明设置了-c 32768上下文参数,却仍报错"超出4096 tokens限制"。经排查发现,问题根源是批处理脚本中续行符^后存在两个空格,导致参数被忽略。文章详细解析了Windows批处理中^的严格语法规则(必须紧贴前字符),对比了错误与正确写法的差异,并给出4条实用建议:使用编辑器显示空白字符、调试时关闭@echo off、预检完整命令、优先单行命令。最后强调在AI系统部署中,此类"隐

刘一说的IT专栏 542

POJ1159 Palindrome LCS

Problem Address:http://poj.org/problem?id=1159事实上是一道LCS,不过做了一点点修改而已。算是第一次打LCS,不过居然一次AC了,而且各种数据都还不赖。时间上虽然不是最好。思路就是将字符串反转过来,找出前后两个字符串的LCS,将字符串的长度减去LCS的值就得到答案。原来的LCS需要n*n的空间存储数据,由于不需要记录路径,所以我直接改成两个一维数组记录,节省了大量空间。搜了一下看到有人MLE的,庆幸= =以下贴代码:#include using namespac

Human_CK的专栏 623

Python + OpenCV 计算视频中运动最慢小球的坐标验证码

本文提出一种基于Python和OpenCV的视频分析方法,用于检测多个运动小球中最慢运动目标的坐标。方法主要包括:1) 通过背景差分和形态学处理提取运动前景;2) 基于轮廓面积和圆形度筛选候选小球;3) 利用图像矩计算小球质心坐标;4) 通过近邻关联构建运动轨迹;5) 根据轨迹平均速度确定最慢目标。该方法能有效处理包含线条干扰和静态大圆干扰的背景,稳定输出最慢小球的中心坐标。实验结果表明,该方法能准确识别运动最慢的小球并定位其位置。

码王吴彦祖的博客 116

3.4 ISIS和OSPF之间路由引入

通过以上输出可以看到OSPF的路由引入到了IS-IS中。通过以上输出可以看到ISIS的路由没有传递给OSPF。通过以上输出可以看到OSPF的路由没有传递给ISIS。通过以上输出可以看到ISIS的路由被引入进了OSPF。掌握在IS-IS中引入OSPF路由的方法。掌握在OSPF中引入IS-IS路由的方法。图3-3:ISIS和OSPF之间路由引入。在R3上把ISIS的路由引入到OSPF。OSPF引入外部路由的缺省度量值为1。在R3上把OSPF的路由引入到ISIS。引入的外部路由类型为Type2。

lwljh134的博客 1803

poj 1159 Palindrome LCS

http://acm.pku.edu.cn/JudgeOnline/problem?id=1159 使用LCS解决回文问题,可以通过简单测试数据。不知道为什么WA。回头在看看。  #include using namespace std;#define MAX 5001 char AA[MAX][MAX];char SA[MAX];char SB[M

casmaster的专栏 405

R语言绘制森林图

运行上述代码后,将会生成一个标题为"森林图示例"的森林图。通过以上代码示例,你可以根据自己的数据集和需求创建定制的森林图。在实际应用中,你还可以进一步调整图形的样式,添加图例、坐标轴标签等,以使森林图更加美观和易于理解。在数据可视化领域,森林图是一种常用的图形类型,用于展示多个分类变量之间的关系。本文将介绍如何使用R语言创建森林图,并提供相应的源代码示例。森林图通常由垂直的线段表示不同类别的观测值,并且线段的长度表示数值变量的大小。上述代码中,我们为不同的类别分别指定了蓝色和红色作为颜色映射关系。

TechNovaX的博客 1045

Palindrome POJ1159 LCS+滚动数组

传送门:POJ1159 题意:求给定字符串最少再添加多少个字符能形成回文串。 思路:先说感觉超奇妙的一种思路,先求出给定字符串和其逆串的LIS,题目所求即为n-LIS。

WA是一笔财富 329

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

POJ 1159 - Palindrome 优化空间LCS

将原串和其逆序串的最长公共子序列求出来为M..那么2*n-M就是所需要加的最少字符..因为求出的M就是指的原串中"潜伏"的最长回文..     问题转化为求LCS..但是n最大到5000...裸的LCS需要dp[5000][5000]..显然会爆空间..     而LCS的时间复杂度接近O(n)...更新的时候之于上一层的数据有关...     所以空间不需要开5000*5000...滚动数

zzyzzy12 1214

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

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

POJ 1159 Palindrome(LCS变形)

传送门:Palindrome 题意:给你个字符串,问最少加入多少字符可以让这个字符串变成回文字符串。 思路:s为给定的字符串,e为s的逆序字符串。 最少需要补充的字母数 = 原序列s的长度 — s和e的最长公共子串长度。 原因仔细想想应该可以想出来。 这道题就变成求s和e的最长公共子串长度。也就是LCS问题。 在这里要注意定义二维数组空间会超限的,由于在LCS问题中都是相邻两个数进行比较,所以可以用滚动数组来优化空间。 代码: #include<iostream> #include<

qw991的博客 501

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Poj1159 Palindrome 【简单DP】(LCS)

http://poj.org/problem?id=1159 题目大意:给定一个字符串,问最少插入多少字符,使该字符串变成回文字符串。 设原字符串序列为X,逆序列为Y,则最少需要补充的字母数=X的长度-X和Y的最长公共子串的长度。 状态转移方程:f[i][j]=max{f[i-1][j],f[i][j-1],f[i-1][j-1]+1(ifs1[i]==s2[j])...

bantengbang8949的博客 190

POJ - 1159 - Palindrome (LCS + 优化)

题目传送:Palindrome 思路:一看题目思路很清晰,就是求出字符串s和倒转s后的字符串t的最长公共子序列,但是一看空间开销有点大,如果开int就会爆,5000*5000有100MB了,这里可以开short int,差不多正好可以过去,还有一种做法就是弄一个滚动数组,因为求LCS,根据状态转移方程可以知道,只需要前一行和当前行就行了,所以开个2*5005就OK了,具体看代码

Never say never 719

Palindrome POJ 1159 【LCS】

Problem Description A palindrome is a symmetrical string, that is, a string read identically from left to right as well as from right to left. You are to write a program which, given a string, determ

Determined&Diligent的专栏 459

POJ-1159-Palindrome-lcs扩展

题意:   看需要增加几个字母可以使该串变成回文串 思路:   LCS的扩展,把串反过来,然后找他们的最长公共子序列的长度,用n减去这个数就可以了 方法1: LCS普通 CODE 49720K 688ms #include #include #include #include #include using namespace std; short c[5005][5005];

命运在指间 458

poj 1159 Palindrome (LCS)

题意:给定一个字符串,求最少添加多少个字符可使得该字符串变为回文字符串 分析:设原序列S的逆序列为S' ,最少需要补充的字母数 = 原序列S的长度 - S和S'的最长公共子串长度 原因:要求最少添加几个字符,我们可以先从原串中找到一个最长回文串,然后对于原串中不属于这个回文串的字符,在它关于回文串中心的对称位置添加一个相同字符即可。那么需要添加的字符数量即为n-最长回文串长度。 最长回文串可以看作是原串中前面和后面字符的一种匹配(每个后面的字符在前面找到一个符合位置要求的与它相同的字符)。这种的回文匹配和原

happy_lcj 927

POJ 1159:Palindrome ← 区间DP + 滚动数组 + LCS

本文把「求字符串最少插入字符成回文」的问题,转化为「最长公共子序列 (LCS)」的问题。之后,用奇偶滚动数组做极致空间优化。代码短小但含金量极高。主要依据一下两个核心点。 (1)字符串构建回文串的最少插入字符数 = 字符串长度 - 字符串最长回文子序列 (LPS) 的长度 (2)字符串的最长回文子序列 (LPS) = 字符串与其逆序字符串的最长公共子序列 (LCS)

hnjzsyjyj的专栏 603

POJ 1159 Palindrome (LCS)

题目链接 题意:给你一个字符串,问将它变成回文串至少需要再添加多少字母。 思路:将字符串反向,然后求把这两个字符串变成一样的需要再添加多少字母。设dp【i】【j】代表第一个串匹配到位置i,第二个串匹配到位置 j 时需要添加的最少字母,当他们相等的时候,答案就是dp【i-1】【j-1】,否则就是min(dp【i-1】【j】,dp【i】【j-1】)+1。因为这题卡空间,所以用滚动数组优化,因为d...

我是蒋卫升呀~ 179

POJ1159Palindrome【LCS+滚动数组】

Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 56228   Accepted: 19430 Description A palindrome is a symmetrical string, th

走一步再走一步 624
上一篇: STL - next_permutation 全排列函数
下一篇: STL - string
莜莫oO
博客等级 码龄9年 7粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值