首页 > 其他分享 >1092 回文字符串(LCSL_DP)

1092 回文字符串(LCSL_DP)

时间:2023-02-13 20:25:13浏览次数:48  
标签:1092 int s1 len1 MAXN 字符串 LCSL DP 回文

1092 回文字符串 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。每个字符串都可以通过向中间添加一些字符,使之变为回文字符串。 例如:abbc 添加2个字符可以变为 acbbca,也可以添加3个变为 abbcbba。方案1只需要添加2个字符,是所有方案中添加字符数量最少的。   Input

输入一个字符串Str,Str的长度 <= 1000。
Output
输出最少添加多少个字符可以使之变为回文字串。
Input示例
abbc
Output示例
2

思路:把字符串倒过来,看最大公共子序列的长度减去字符串长度即可
代码如下:

#include<algorithm>
#include<cstdio>
#include<cstring>
#define max(a, b) (a)>(b)?(a):(b)
#define MAXN 1002
using namespace std;
char s1[MAXN], s2[MAXN];
int c[MAXN][MAXN];
int len1, len2;
void LCSL()
{
 for (int i = 1; i <= len1; ++i)
 {
  for (int j = 1; j <= len2; ++j)
  {
   if (s1[i - 1] == s2[j - 1]) c[i][j] = c[i - 1][j - 1] + 1;
   else c[i][j] = max(c[i - 1][j], c[i][j - 1]);
  }
 }
}
int main()
{
 scanf("%s", s1);
 len1 = strlen(s1);
 reverse_copy(s1, s1 + len1, s2);
 len2 = len1;
 LCSL();
 printf("%d\n", len1 - c[len1][len2]);
}

标签:1092,int,s1,len1,MAXN,字符串,LCSL,DP,回文
From: https://www.cnblogs.com/ALINGMAOMAO/p/17117678.html

相关文章

  • P2690 接苹果 (DP)
    补一下dp的思路:dp[i][j]表示第i分钟转j 次所得到的最大值。很容易得到这个dp的推导式。图中¢()函数表示成立为1,不成立为0的函数。#include<cmath>#include<i......
  • 最长公共子序列(模板 LCSL)
    博客: https://www.cnblogs.com/sasuke-/p/5396843.html模板#include<iostream>#include<cstdio>#include<cstring>#defineMAXN1010usingnamespacestd;intc[MAXN][M......
  • DP8.0安装步骤session
    [root@rx6600]#./omnisetup.sh-CM-ISTheomnisetup.shscriptdidnotcompletethelasttimeitwasrun.CellManagerstillhastobeinstalledInstallation......
  • HDU 4507 (数位dp)
    HDU4507(数位dp)题意一个数满足以下三个条件之一,则被认为与7有关。1、整数中某一位是7;2、整数的每一位加起来的和是7的整数倍;3、这个整数是7的整数倍;求区间[L,R]内......
  • dp
    121.买卖股票的最佳时机-力扣(LeetCode)classSolution{public:intmaxProfit(vector<int>&prices){intmax=0;for(inti=0;i<prices.size(......
  • HDU 3709 数位dp
    HDU3709(数位dp)题意求区间[L,R]内满足以下性质的数:选定该数的一个位置,左右两边的力矩相等,如4139,选取'3'这位,左边4×2+1×1=9×1.思路一开始想着枚举每个点来做,......
  • 【学习笔记】数位 dp 学习笔记
    被这个东西薄纱了。顾名思义,树上的动态规划即树形动态规划。P1352没有上司的舞会经典题!设\(f_{i,0/1}\)表示第\(i\)个节点,选或不选自己的最优情况。显然有方程......
  • 状态压缩dp
    最短Hamilton路径给定一张n个点的带权无向图,点从0∼n−1标号,求起点0到终点n−1的最短Hamilton路径。Hamilton路径的定义是从0到n−1不重不漏地经过每个点......
  • 【notedpad++结合HEX-Editor插件】的替代品【vscode+HEX Editor插件】
    近期由于一些原因,notepad++作者违背了开源精神,想必大家也在寻找notedpad++的替代品。之前由于UE需要付费,于是使用了【notedpad++结合HEXDump插件】来为文件十六进制......
  • HDU 4389 数位dp
    HDU4389(数位dp)题意求一个区间内[L,R]内有多少个数满足:它的数位和能整除它本身。思路按照一般数位dp的套路,多出来的参数无非就是数位和以及这个数本身,但如果直接这......