POJ--1159:Palindrome (DP求最长公共子序列)

2023-11-06

1. 题目源地址http://poj.org/problem?id=1159

2. 题目大意题目就是给你一个字符串,问你添加最少几个字符之后字符串变成回文字符串。

   求给出的字符串和逆序的字符串的最长公共子序列,用总长度减去这个最长公共子序列的长度就是答案了。

    注意:本题3 <= N <= 5000,若直接使用int dp[5005][5005]会导致内存大小超出,具体优化方式可以使用滚动数组,

        使用滚动数组的优化可以参考博客:http://blog.csdn.net/lyy289065406/article/details/6648163

   本题,我的代码参考了discuss中short dp[5005][5005]水过。

3. 解题代码:

//POJ--1159:Palindrome
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;

char a[5005],b[5005];
short dp[5005][5005];

int main()
{
    int len;
    int i,j;
    
    while(cin>>len)
    {
       for(i=0;i<len;i++)
       {
          cin>>a[i];
          b[len-i-1]=a[i];
       }
       
       dp[0][0]=0;
       
       for(i=1;i<=len;i++)
       {
          for(j=1;j<=len;j++)
          {
             if(a[i-1]==b[j-1])
                dp[i][j]=dp[i-1][j-1]+1;
             else
                dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
          }
       }
       
       int ans=len-dp[len][len];
       cout<<ans<<endl;
    }
    return 0;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

POJ--1159:Palindrome (DP求最长公共子序列) 的相关文章

  • 12、剪绳子——剑指offer——动态规划

    剪绳子 问题描述 给你一根长度为n的绳子 请把绳子剪成m段 m和n都是整数 n gt 1并且m gt 1 每段绳子的长度记为k 0 k 1 k m 请问k 0 k 1 k m 可能的最大乘积是多少 首先本题可以用贪婪算法和动态规划算法求解
  • 模糊匹配之——BK树与拼写纠正

    介绍 拼写纠错功能常常出现在比较高级的文本编辑应用中 例如大家熟知的word 高级一点的IDE例如Jet Brains系列 在一些在线翻译上 也有自动校正拼写的功能 例如谷歌翻译 原理 拼写纠正的实现方式有多种 这里使用的是一种名为BK树的
  • 基于Dijkstra、A*和动态规划的移动机器人路径规划(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 目录 1 概述 2 运行结果 2 1 Dijkstra算法 2 2 A 算法 2 3 动态规划 3 Matlab代码实现 1 概述 在基
  • LeetCode312. 戳气球 (分治,记忆化搜索,动态规划)

    LeetCode312 戳气球 解题思路 记忆化搜索 动态规划 解题思路 官方题解 参考题解 核心思想 由于戳气球的操作会导致两个气球从不相邻变成相邻 使得后续操作难以处理 于是我们倒过来看这些操作 将全过程看成每次添加一个气球 solve
  • 动态规划练习一 14:怪盗基德的滑翔翼

    描述 怪盗基德是一个充满传奇色彩的怪盗 专门以珠宝为目标的超级盗窃犯 而他最为突出的地方 就是他每次都能逃脱中村警部的重重围堵 而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼 有一天 怪盗基德像往常一样偷走了一颗珍贵的钻石 不料却被柯
  • 【类】二维dp:动态规划背包问题

    dp n m 含义就是 当有n种物品时且背包有m容量时 这个背包能产生的最大价值 状态转换关系是 dp n m dp n 1 m dp n 1 m 新物品重量 意思就是 当面对新来的一个物品时 求这个情况下 背包能产生的最大价值 相当于求下
  • 【算法-LeetCode】63. 不同路径 II(动态规划;滚动数组)

    63 不同路径 II 力扣 LeetCode 文章起笔 2021年11月13日16 28 08 问题描述及示例 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达
  • 【编程之路】面试必刷TOP101:动态规划(67-71,Python实现)

    面试必刷TOP101 动态规划 67 71 Python实现 67 不同路径的数目 一 小试牛刀 67 1 递归 首先我们在左上角第一个格子的时候 有两种行走方式 如果向右走 相当于后面在一个 n 1
  • 强化学习基础三大优化方法:(一)动态规划

    文章目录 一 简介 二 动态规划 DP Dynamic Planning 方法 一 策略评估 二 策略迭代 1 策略改进 2 策略迭代 3 迭代算法 三 编程实践 一 环境介绍 二 策略编写 1 初始化 2 价值评估 3 策略改进 4 其他
  • ARC105

    C Camels and Bridge 题意 一堆骆驼过桥 每个桥有承重和长度 问骆驼从头到尾的最近距离 假设这时候骆驼的过桥顺序已经安排好 每一个桥相当于一个限制条件 限制了 l r 的最近距离 也就是说 对于每一个骆驼 j 要保证 好了
  • OJ题目8--动态规划问题

    1 509 斐波那契数 力扣 LeetCode leetcode cn com 过去一直用递归法 但由于栈区空间的限制 当递归过深时容易发生栈溢出 int fib int n if n 0 return 0 else if n 1 retu
  • leetcode动态规划总结之01背包和完全背包问题

    1 背包问题分类 其中 除了01背包和完全背包外 leetcode题目中好像还没有涉及其他类型的背包 在这里我就不做总结 2 01背包理论 有N件物品和一个最大承载重量为W 的背包 第i件物品的重量是weight i 其价值是value i
  • OJ刷题---【算法课动态规划] 换硬币(C++完整代码)

    题目 给定面值分别为2 5 7的硬币 每种硬币有无限个 给定一个N 求组成N最少需要的硬币的数量 若无法组成则返回 1 输入 输入N 1 lt N lt 100 输出 输出需要的最少硬币个数 完整代码 C include
  • 字节跳动笔试---字母交换,最多m次

    参考 https blog csdn net cxzzxc123456 article details 79058419 编码题 字符串S由小写字母构成 长度为n 定义一种操作 每次都可以挑选字符串中任意的两个相邻字母进行交换 询问在至多交
  • 特殊类型动归--区间动归与环形动归

    区间动归 某类有序事件中前若干个事件的子答案 不能再支撑状态转移 我们需要去寻找 从某个元素起到另一个元素结束所包含所有的 连续 元素的子答案 作为状态 可以想象 在这个描述下 每个状态会对应于原题序列上的一个区间 区间具有良好的性质 短的
  • OD机试题目【计算网络信号】

    网络信号经过传递会逐层衰减 且遇到阻隔物无法直接穿透 在此情况下需要计算某个位置的网络信号值 注意 网络信号可以绕过阻隔物 array m n 的二维数组代表网格地图 array i j 0代表i行j列是空旷位置 array i j x x
  • 【LeetCode75】第五十九题 第N个泰波那契数

    目录 题目 示例 分析 代码 题目 示例 分析 题目顾名思义 让我们求出第N个泰波那契数 也就是除了开头三个数之外 第四个数开始就是等于前三个数之和 不要和斐波那契数弄混了 斐波那契是前两个数的和 泰波那契是前三个数的和 也就是说当前数 我
  • 动态规划之多重背包模型

    前置知识 01背包问题 动态规划之01背包模型 如何何何的博客 CSDN博客 完全背包问题 动态规划之完全背包模型 如何何何的博客 CSDN博客 多重背包问题 给定一个有一定容量的背包 和 n 个物品 每个物品有 si 件 每个物品有其对应
  • Python之动态规划

    序言 最近在学习python语言 语言有通用性 此文记录复习动态规划并练习python语言 动态规划 Dynamic Programming 动态规划是运筹学的一个分支 是求解决策过程最优化的过程 20世纪50年代初 美国数学家贝尔曼 R
  • acwing算法提高之动态规划--最长上升子序列模型(上)

    目录 1 基础知识 2 模板 3 工程化 1 基础知识 暂无 2 模板 暂无 3 工程化 题目1 怪盗基德的滑翔翼 有N个数 表示房屋的高度 你可以任意选择一个房屋作为起点 选择朝左飞 或者朝右飞 必须严格递减才能够飞到下一个房屋 求经过的

随机推荐

  • Git学习之将不空的文件夹关联到远程仓库

    昨天和今天在将 本地不空的文件夹关联到远程Git仓库 的时候遇到了很多瓶颈 主要方法一般都是在本地创建一个空的文件夹 然后 仓库化 再关联到远程仓库 或者是将远程仓库直接克隆到本地 下面说说将不空的文件夹关联到远程仓库的方法 因为我试了好多
  • 学习UI设计有哪些figma插件

    自2016年推出以来 Figma已发展成为市场领先者UI设计工具之一 因为它不仅简单易用 功能优秀 而且基于云服务 可以实时编辑 节省大量手动下载或复制文件的时间 不仅如此 Figma还提供合作功能 让您和您的团队同时处理文件 避免许多潜在
  • 反诈题库---合计100道(解析版最新)

    反诈题库一合计100 一 判断题 40题 1 小A在淘宝购物 商家发了一条非淘宝的商品链接让其拍下 小A直接点击链接付款 X 解析 淘宝购物坚持按担保交易流程下单 如果卖家要求通过陌生链接或二维码要求付款 100 是骗子 请到安全中心举报
  • postgresql客户端连接错误的解决方法

    今天在重新设置postgresql服务器以后却发现启动不了服务器 错误如下 psql
  • 为什么机油使用后变红_上汽大众为什么开始使用低粘度机油

    2020年注定是一个不平凡的年份 年初的新冠疫情打乱了所有中国人的生活 现在疫情已经一步一步的趋向平缓 所有人的生活也正在回归正常 复工后收到上汽大众总部发来的通知 要求所有新款EA211和EA888国六发动机必须使用符合大众VW50800
  • python小记(2)

    目录 一 安装 问题 二 题目 代码 三 结果 一 安装 问题 Pycharm中File gt setting gt Python Interpreter添加opencv python及opencv contrib python 调用时直接
  • 2023蓝桥杯省赛出成绩时间

    看看各年蓝桥杯出成绩的时间吧 2018年 4 1 4 9 8天 2019年 3 24 3 31 7天 2020年 10 17 10 26 9天 2021年 4 18 4 28 10天 2022年 4 9 4 28 19天 2023年 4 8
  • 卷积操作的过程、参数说明、用CNN实现分类任务的代码

    因为自己初学时候混淆过CNN中图像尺寸变化与通道数变化 本文从理论 gt 使用 根据自己遇到的问题对相关概念作出说明 卷积 相关理论 笼统地说 卷积操作是通过滤波器对原图像进行特征提取的过程 其中涉及卷积核 kernel 步长 stride
  • mnist格式(ubyte)数据与jpg、png格式数据的相互转化

    在学习深度学习的过程中 会发现教程中的模型大多都是用mnist和cifar这两个数据集来演示的 想要使用这些模型在自己的数据上看一下效果 就想到将自己的数据做成与mnist或者cifar格式一样的数据 这里 主要是总结一下自已通过一番百度和
  • MySQL 核心知识点

    数据库基础知识 什么是SQL 结构化查询语言 Structured Query Language 简称SQL 是一种数据库查询语言 作用 用于存取数据 查询 更新和管理关系数据库系统 什么是MySQL MySQL是一个关系型数据库管理系统
  • QT 连mysql数据库

    要在QT中连接MySQL数据库 需要进行以下步骤 1 安装MySQL数据库和QT开发环境 2 在QT中添加MySQL驱动程序 可以在QT的 帮助 菜单中找到 关于插件 的选项 然后选择 SQL驱动程序 选项卡 查看是否已经安装了MySQL驱
  • LINUX后台运行Java项目

    今天在linux部署项目时用的SecureCRT远程连接的 发现在关闭CRT后项目也跟着关闭了 查了文档发现 要想让项目能够后台运行我们可以使用nohup命令来实现 gt nobup java jar xxx jar 当我使用这个命令时又出
  • 输入年份和天数,输出对应的年、月、日

    如果将某个变量的地址作为函数的实参 相应的形参就是指针 若要通过函数调用来改变主调函数中某个变量的值 将该变量的地址或者指向该变量的指针作为实参即可 输入年份和天数 输出对应的年 月 日 要求定义和调用函数month day year ye
  • [创业之路-68]:科创板上市公司符合哪些条件

    上交所发布 关于在上交所设立科创板并试点注册制相关情况答记者问 上交所将认真落实习指示 在证监会的指导下 积极研究制订科创板和注册制试点方案 向市场征求意见并履行报批程序后实施 科创板是独立于现有主板市场的新设板块 并在该板块内进行注册制试
  • could not establish connection to host:The VS Code Server failed to start

    即 vscode使用ssh无法连接远程主机 报出 The VS Code Server failed to start 解决方法 查看VSCode的版本和安装的扩展包Remote SSH是否版本配合 用过cuda的跑过深度学习的人应该对版本
  • Qt CAN总线API扩展

    Qt CAN Bus API extensions Qt CAN总线API扩展 April 20 2023 by Ivan Solovev Comments 2023年4月20日 Ivan Solovev 评论 The latest Qt
  • 《Qt 5.9 C++开发指南》第2.2节 可视化UI设计【完整版】

    2 2 可视化UI设计 在上一节 通过一个极简单的应用程序 分析了Qt创建的GUI应用程序的各个文件的作用 剖析了可视化设计的UI文件是如何被转换为C 的类定义 并自动创建界面的 这些是使用Qt Creator可视化设计用户界面 并使各个部
  • RHCS套件+NGINX实现高可用集群配置(luci+ricci+fence)

    1 什么是RHCS RHCS是Red Hat Cluster Suite的缩写 也就是红帽子集群套件 RHCS是一个能够提供高可用性 高可靠性 负载均衡 存储共享且经济廉价的集群工具集合 它将集群系统中三大集群架构融合一体 可以给web应用
  • Maya---合并顶点

    Maya学习必遇到的31个常用命令 超详细讲解 解决你的所有疑问 Maya教程 Maya基础教程 Maya入门教程 Maya人物建模 Maya游戏建模 哔哩哔哩 bilibili萌新up 跪求观众姥爷们的一键三连 UP猪给姥爷磕头了大佬交流
  • POJ--1159:Palindrome (DP求最长公共子序列)

    1 题目源地址 http poj org problem id 1159 2 题目大意 题目就是给你一个字符串 问你添加最少几个字符之后字符串变成回文字符串 求给出的字符串和逆序的字符串的最长公共子序列 用总长度减去这个最长公共子序列的长度