这题说的是给了 一个串 然后 比如 aaaaabbbbbbcdddd 可以化成5(a)6(b)c4(d) 这样的串明显 长度更短了 , 请 计算出使得这个串最短的 长度是多少,

dp[i][j] 表示 从字符串i到j 之间的最短的 长度, 然后 先预处理出来 可以简化的 区间

然后 枚举每个区间 去求得最小值

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>
#include <vector>
using namespace std;
const int maxn =;
int dp[maxn][maxn];
char str[maxn];
void inti(int n){
for(int i=; i<n; ++i)
for(int j=i; j<n; ++j)
dp[i][j]=j-i+;
}
bool cmp(int s, int t, int num, int n){
for(int i=; i<num; ++i)
if(str[s+i]!=str[t+i]||t+i>=n) return false;
return true;
}
int ccc(int v){
int ans=;
while(v>) {
ans++;
v/=;
}
return ans;
}
int main()
{
int cas;
scanf("%d",&cas);
for(int cc=; cc<=cas; ++cc){
scanf("%s",str);
int n=strlen(str);
int ok=;
inti(n);
for(int i=; i<=n; ++i){
for(int j=; j+i<n; j++){
ok=;
for(int k=j+i; k<n; k+=i){
if(cmp(j,k,i,n)==true) ok++;
else break;
}
for(int k=; k<i-; ++k)
dp[j][j+i-]=min( dp[j][k+j] + dp[k+j+][j+i-] , dp[j][j+i-] );
dp[j][j+i*(ok+)-] =min( dp[j][j+i*(ok+)-],dp[j][j+i-]*(ok+));
dp[j][j+i*(ok+)-] =min(dp[j][j+i*(ok+) - ] ,dp[j][j+i-]++ccc(ok+) );
}
}
for(int i=; i<=n; ++i){
for(int j=; j+i-<n; ++j)
for(int k=; k<i-; ++k)
dp[j][j+i-]=min(dp[j][j+i-],dp[j][j+k]+dp[j+k+][i+j-]);
}
printf("%d\n",dp[][n-]);
}
return ;
}

最新文章

  1. 【WCF】自定义地址头的筛选器
  2. [.net 面向对象程序设计进阶] (28) 结束语——告别2015
  3. 为七牛云存储开发的PHP PEAR 包:Services_Qiniu
  4. java的报表下载代码excel
  5. Eclipse SVN插件冲突导致不能使用解决办法
  6. Delphi 文字跑马灯
  7. nutch 采集效率--设置采集间隔
  8. 修改UISearchBar的Cancel按钮为中文等本地化问题
  9. native跟volatile
  10. 使用php实现网站验证码功能【博主推荐】
  11. 由if-else,switch代替方案引起的思考
  12. spring boot controller路由 url 扫描不到问题
  13. 【Linux】查看系统信息
  14. 腾讯云服务器配置node环境
  15. c#判断两个对象和对象中的属性是否相同(以及记录对象中的哪些字段,和详细的改变情况)
  16. Base标签小记:更改当前页面的地址
  17. Java继承(下)
  18. Python-复习-习题-13
  19. 洛谷 P3297 [SDOI2013]逃考 解题报告
  20. jmeter之ip欺骗

热门文章

  1. day7_直播_网络编程篇(元昊老师著)
  2. Hbase的基本认识
  3. Python 入门(六)Dict和Set类型
  4. 64位ubuntu下用code::blocks IDE配置opengl开发环境
  5. 【黑金ZYNQ7000系列原创视频教程】02.视频接口&mdash;&mdash;hdmi编码输出实验
  6. PHP 允许Ajax跨域访问 (Access-Control-Allow-Origin)
  7. iOS CoreMotion 纪录步数
  8. SqlServer复杂存储过程
  9. open live writer 安装 markdown 插件
  10. 【ES6】001---module模块------【巷子】