uva1351 dp
2024-08-24 09:03:14
这题说的是给了 一个串 然后 比如 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 ;
}
最新文章
- 【WCF】自定义地址头的筛选器
- [.net 面向对象程序设计进阶] (28) 结束语——告别2015
- 为七牛云存储开发的PHP PEAR 包:Services_Qiniu
- java的报表下载代码excel
- Eclipse SVN插件冲突导致不能使用解决办法
- Delphi 文字跑马灯
- nutch 采集效率--设置采集间隔
- 修改UISearchBar的Cancel按钮为中文等本地化问题
- native跟volatile
- 使用php实现网站验证码功能【博主推荐】
- 由if-else,switch代替方案引起的思考
- spring boot controller路由 url 扫描不到问题
- 【Linux】查看系统信息
- 腾讯云服务器配置node环境
- c#判断两个对象和对象中的属性是否相同(以及记录对象中的哪些字段,和详细的改变情况)
- Base标签小记:更改当前页面的地址
- Java继承(下)
- Python-复习-习题-13
- 洛谷 P3297 [SDOI2013]逃考 解题报告
- jmeter之ip欺骗
热门文章
- day7_直播_网络编程篇(元昊老师著)
- Hbase的基本认识
- Python 入门(六)Dict和Set类型
- 64位ubuntu下用code::blocks IDE配置opengl开发环境
- 【黑金ZYNQ7000系列原创视频教程】02.视频接口&mdash;&mdash;hdmi编码输出实验
- PHP 允许Ajax跨域访问 (Access-Control-Allow-Origin)
- iOS CoreMotion 纪录步数
- SqlServer复杂存储过程
- open live writer 安装 markdown 插件
- 【ES6】001---module模块------【巷子】