洛谷 P1435 回文字串
时间:2019-06-15
本文章向大家介绍洛谷 P1435 回文字串,主要包括洛谷 P1435 回文字串使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
给了一个串,求最少填几个字母可以组成回文串,我们发现找到最中间的数后,其余只要不对称的都需要补(左边的补到右边,右边的补到左边所以=len-中间相同的子串),所以不如去求中间的子串,一减就可以了。
string:len=s1.size();
char:len=strlen();
从一开始录入:scanf("%s",s1+1);
从下标一开始计数:int len=strlen(s1+1);
既然是回文串,左右相同,就可以直接求它倒过来和它的最大公共子序列。
但当s1[i]==s2[j]时,是可以直接继承然后+1的;
如
Adb3bdmzA
Azmdb3bdA
最边上的A也是不用补的,
最长公共子序列如下:
#include <bits/stdc++.h> using namespace std; int n,a[1000008],b[10000008],f[10008][10008]; int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) scanf("%d",&b[i]); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++){ if(a[i-1]==b[j-1]) f[i][j]=max(f[i][j],f[i-1][j-1]+1); else f[i][j]=max(f[i-1][j],f[i][j-1]); } int ans=f[n][n]; printf("%d",ans); return 0; }
而本题的代码如下:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; char s1[1009],s2[1009]; int f[1009][1009],maxn; int main(){ scanf("%s",s1+1); int len=strlen(s1+1); for(int i=1;i<=len;i++) s2[len-i+1]=s1[i]; for(int i=1;i<=len;i++){ for(int j=1;j<=len;j++){ if(s1[i]==s2[j]) f[i][j]=max(f[i][j],f[i-1][j-1]+1); else f[i][j]=max(f[i-1][j],f[i][j-1]); //maxn=max(maxn,f[i][j]); } } printf("%d",len-f[len][len]); return 0; }
打个黄题打的我快不想学了,状态转移方程还是不会列。
原文地址:https://www.cnblogs.com/jindui/p/11028560.html
- Hyperledger - 超级账本项目:简介,安装,案例
- 我的第三个网页制作:b、i、s、u、sub、sup标签的使用
- 【AlphaGo Zero 核心技术-深度强化学习教程代码实战04】Agent类和SARSA算法实现
- 我的第二个网页制作:p,hn,br标签的使用
- 超级账本项目:架构设计
- 我的第四个网页制作:列表标签
- “盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛题解&&源码【A,水,B,水,C,水,D,快速幂,E,优先队列,F,暴力,G,贪心+排序,H,STL乱搞,I,尼姆博弈,J,差分dp
- 虎嗅主站盲打成功(已进后台)
- 我的第五个网页制作:pre、html转义、abbr标签的使用
- UVALive 3882 - And Then There Was One【约瑟夫问题】
- 超级账本项目:链码示例
- 我的第六个网页制作:table标签
- POJ 1163 The Triangle【dp+杨辉三角加强版(递归)】
- UVA 11039-Building designing【贪心+绝对值排序】 UVA11039-Building designing
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Go by Example 中文版: Base64 编码
- Django3.0+supervisor+uvicorn+nginx进行线上部署
- 前端杂货铺上新
- 短视频系统源代码,实现前置摄像头水平翻转
- linux配置SOCK5代理
- 前端踩坑系列《五》
- linux上安装mitmproxy
- Jmeter(二十三) - 从入门到精通 - JMeter函数 - 上篇(详解教程)
- Elasticsearch学习笔记 -- 1
- Jmeter(二十四) - 从入门到精通 - JMeter函数 - 中篇(详解教程)
- [javascript] elementui和vue下复制粘贴上传图片
- SQL Server通过创建临时表遍历更新数据
- 对于 JavaScript 中循环之间的技术差异概述
- 初识 webpack 原理——自定义插件
- 高性能解决线程饥饿的利器 StampedLock