神仙题,看了半天题解才看明白。。。

因为题目里说如果没有m,会自动默认m在最前面。

我们设计状态为dp[l][r][0/1]为在区间l到r中有没有m的最小长度。

转移:枚举我们要压缩的起点,dp[l][i][1]+dp[i+1][r][1]+1,加一是指我们要压缩后半段,在断点处加上一个m。

如果我们不压缩后半段,那转移就为dp[l][i][1]+r-i,因为后面不动,就直接加上。

如果发现它可以压缩,直接dp[l][mid][0]+1,注意tag为0。

Code

#include<iostream>
#include<cstdio>
#include<cstring>
#define N 55
using namespace std;
int dp[N][N][],n;
char s[N];
inline bool pd(int l,int r){
if((r-l+)%==)return ;
int len=(r-l+)/;
for(int i=l;i<=l+len-;++i)
if(s[i]!=s[i+len])return ;
return ;
}
int dfs(int l,int r,int tag){
if(dp[l][r][tag])return dp[l][r][tag];
int ans=r-l+;
if(ans==)return ans;
if(tag)
for(int i=l;i<r;++i)ans=min(ans,dfs(l,i,)++dfs(i+,r,));
for(int i=l;i<r;++i)ans=min(ans,dfs(l,i,tag)+r-i);
if(pd(l,r))ans=min(ans,dfs(l,(l+r)>>,)+);
return dp[l][r][tag]=ans;
}
int main(){
scanf("%s",s);
n=strlen(s);
printf("%d",dfs(,n-,));
return ;
}

最新文章

  1. kendo ui 富文本编辑控件 Editor 实现本地上传图片,并显示
  2. iOS边练边学--菜单悬停效果的实现思路
  3. 简易博客编辑器:玩转document.execCommand命令
  4. JS与OC交互--简单使用
  5. Esper系列(九)NamedWindow语法create、Insert、select
  6. double 类型运算会出现精度问题
  7. nginx模块开发获取post参数
  8. 用N2N搭建简单的VPN
  9. C# 从字符串向 datetime 转换时失败
  10. 让你变懒的 Android Studio Live Templates
  11. 自学MongoDB(1)
  12. STM32F103/429串口IAP+Ymodem升级
  13. pyspider 启动错误遇到的一些坑
  14. Flask学习【第3篇】:蓝图、基于DBUtils实现数据库连接池、上下文管理等
  15. java学习笔记25(Collections类)
  16. #leetcode刷题之路38-报数
  17. 依据分辨率区分手机、平板、pc
  18. 从块级元素和行内元素的分析到bfc的布局理解
  19. 微软 eshop 数据存储之sqlserver
  20. 使用GraphViz画caffe网络结构图

热门文章

  1. C#设计模式之4:装饰者模式
  2. [转帖]前端-chromeF12 谷歌开发者工具详解 Network篇
  3. js如何复制一个对象?
  4. AngularJS:directive自定义的指令
  5. systemd取消对服务重启的限制
  6. Web API2 使用EF Code Migrations to Seed DB
  7. React 学习(一) ---- React Element /组件/JSX
  8. [离散时间信号处理学习笔记] 3. 一些基本的LTI系统
  9. Jquery实现菜单栏
  10. 如何下载旧版本的MySQL