1154 回文串划分(DP+Manacher)
2024-10-20 03:43:48
基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题
有一个字符串S,求S最少可以被划分为多少个回文串。
例如:abbaabaa,有多种划分方式。
a|bb|aabaa - 3 个回文串
a|bb|a|aba|a - 5 个回文串
a|b|b|a|a|b|a|a - 8 个回文串
其中第1种划分方式的划分数量最少。
Input
输入字符串S(S的长度<= 5000)。
Output
输出最少的划分数量。
Input示例
abbaabaa
Output示例
3
相关问题
最长回文子串 V2(Manacher算法) 最长回文子串 回文串划分 V2 6
40
回文字符串 10
//显然dp,dp[i] 表前 i 个数最少能变几个回文
dp[i] = min(dp[i], dp[z-1]+1) "s[z],s[z+1]...s[i]" 是一个回文串
用马拉车就是 n*2n ,5000*10000,话说弱鸡我debug一万年。。。
不用就是 n^3 吧,不大懂
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define MOD 1000000007
#define MX 5005 int n;
int len;
char temp[MX];
char str[MX*];
int p[MX*];
int dp[MX*]; void Init()
{
len = ;
str[len++]='@';
str[len++]='#';
n = strlen(temp);
for (int i=;i<n;i++)
{
str[len++]=temp[i];
str[len++]='#';
}
memset(p,,sizeof(p));
} void Manacher()
{
Init();
int mx = , id =;
for (int i=;i<len;i++)
{
p[i] = mx>i ? min(p[*id-i],mx-i):;
while (str[i+p[i]]==str[i-p[i]]) p[i]++;
if (i+p[i]>mx)
{
mx = i+p[i];
id = i;
}
}
} int main()
{
while (scanf("%s",temp)!=EOF)
{
Manacher(); for (int i=;i<n;i++)
{
dp[i] = i+; //初值
int pos = (i+)*;
for (int j=pos;j>=;j--)
{
if(j+p[j]->=pos)
{
int pre = (j-(pos-j))/-;
if (pre==) dp[i]=;
else dp[i]= min(dp[pre-]+,dp[i]);
}
}
}
printf("%d\n",dp[n-]);
}
return ;
}
最新文章
- winform 用户控件、 动态创建添加控件、timer控件、控件联动
- VS2015打开工程 未能正确加载“”包的问题
- python算法:rangeBitwiseAnd(连续整数的与)
- innobackupex err
- 如何将扩展名为.backup的文件导入postgresql中 求步骤 新手 谢谢.
- Java中使用BASE64加密&;解密
- Java动物声音模拟器
- java基础:数据类型
- JSF 2.0 + Ajax hello world example
- win7为鼠标右键添加“用Photoshop编辑”选项
- php安装过程中遇到的需要安装的问题
- Wap站总结一
- Windows 安装Django并创建第一个应用
- [AngualrJS] Using Angular-Cache for caching http request
- 微信公众号H5支付遇到的那些坑
- 【转】搭建spark环境 单机版
- EF Linq中的左连接Left Join查询
- maven国内镜像(国内oschina的maven服务器关了)
- Javaweb学习笔记——(二十四)——————图书商城项目
- 使用nginx反向代理实现多端口映射(未解决)
热门文章
- Eclipse下Java Build Path下Libraies中添加 Maven dependencies 失败解决方案
- 第四天 ThinkPHP手把手高速拼接站点(四)
- CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\
- VS代码注释插件GhostDoc
- MVC 的八个扩展点
- 联想电脑Win8升级win10后Wlan关闭无法开启解决办法
- 完美运动框架(js)
- nginx日志配置指令详解
- PILE读书笔记_标准I/O
- 使用Crypto++库编译出错 解决办法