【ZJ选讲·字符串折叠】
给一个字符串(len<=100)
把这个字符串折叠(就是压缩)
记 X(子串) 表示重复 X次该子串
比如 3(orz) orzorzorz
来点神奇例子:
AAAAAAAAAABABABCCD 9(A)3(AB)CCD
NEERCYESYESYESNEERCYESYESYES 2(NEERC3(YES))
【题解】
①和上一题《压缩》类似,省去了第三维
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
char s[105];
bool vis[105][105];
int f[105][105];
int cal(int x){
int cnt=0;
while(x) cnt++,x/=10;
return cnt;
}
bool repeat(int l,int r,int L,int R){
if((R-L+1)%(r-l+1)) return 0;
for(int i=L,j=l;i<=R;i++,j++){
if(j>r) j=l;
if(s[i]!=s[j]) return 0;
}
return 1;
}
int dp(int l,int r){
if(l==r) return 1;
if(vis[l][r]) return f[l][r];
vis[l][r]=1; int res=r-l+1;
for(int i=l;i<r;i++){
res=min(res,dp(l,i)+dp(i+1,r));
if(repeat(l,i,i+1,r))
res=min(res,dp(l,i)+2+cal((r-l+1)/(i-l+1)));
}
return f[l][r]=res;
}
int main(){
scanf("%s",s+1); int len=strlen(s+1);
printf("%d",dp(1,len));
return 0;
}//*zj
.
【ZJ选讲·字符串折叠】的更多相关文章
- 【ZJ选讲·压缩】
给一个由小写字母组成的字符串(len<=50) 我们可以用一种简单的方法来压缩其中的重复信息. 用M,R两个大写字母表示压缩信息 M标记重复串的开始, R表示后面的一段字符串重复从上一个 ...
- 【ZJ选讲·BZOJ 5073】
小A的咒语 给出两个字符串A,B (len<=105) 现在可以把A串拆为任意段,然后取出不超过 x 段,按在A串中的前后顺序拼接起来 问是否可以拼出B串. [题解] ①如果遇 ...
- 【ZJ选讲·画山】
给出一张纸(N × M),你要在上面画山,但不能画出界(N,M<=100) Like this: 起点为(0,0),终点为(N,0) 给出w种线段画法(x,y),表示用了这种画法后,笔迹末 ...
- 【ZJ选讲·调整】
给出n个点,m条有向边(带正权),起点S,终点T.(n<=2000,m<=30000) 再给出一个k,表示可以把最多k条边的权值调整为任意非负整数.(k<=100) 问是否可以通 ...
- 【ZJ选讲·钻石游戏】
N×M的棋盘(M,N<=500)中,每个格子有一个颜色(颜色数1~9) P次操作(P<=1000),每次给出两个相邻的位置(保证颜色不同,两个格子有一条公共边),把这两个格子交换. 定 ...
- 【ZJ选讲·BZOJ 5071】
小A的数字 有一串数字A1 ,A2,--,An,每次可以进行如下骚操作: 选择一个数字i,将(Ai-1,Ai,Ai+1)变为(Ai-1+Ai,-Ai,Ai+1+Ai), (特别地,若i=N,则( ...
- PJ考试可能会用到的数学思维题选讲-自学教程-自学笔记
PJ考试可能会用到的数学思维题选讲 by Pleiades_Antares 是学弟学妹的讲义--然后一部分题目是我弄的一部分来源于洛谷用户@ 普及组的一些数学思维题,所以可能有点菜咯别怪我 OI中的数 ...
- [转载]CSP-J/S 第一轮知识点选讲
CSP-J/S 第一轮知识点选讲 转载自这里 感谢原博主的大力整理! 信息学史及基本知识 一.信息学及计算机史 计算机的顶级奖项:图灵奖.冯·诺依曼奖 图灵奖:由ACM(美国计算机协会)设立于1966 ...
- DP选讲
$DP$选讲直接上题吧放个题单[各省省选DP](https://www.luogu.com.cn/training/151079)$P5322[BJOI2019]$排兵布阵一眼题,考虑$dp[i][j ...
随机推荐
- WordPress博客插件程序:搜索下拉框openSug
百度搜索框下拉提示Wordpress组插件. 下载地址:https://www.opensug.org/faq/wp-content/uploads/2018/12/opensug.wordpress ...
- apache使用.htaccess文件中RewriteRule重定向后,URL中的加号无法解析
今天在使用.htaccess做伪静态的时候,发生一件怪事,URL里存在C++时会有问题,在处理C++这个词的时候,无论如何,$_GET都得不到++,只能得到C空格. 一开始我以为是没用urlencod ...
- html5 获取和设置data-*属性值的四种方法讲解
1.获取id的对象 2.需要获取的就是data-id 和 dtat-vice-id的值 一:getAttribute()方法 const getId = document.getElementById ...
- Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000
启动程序报错: Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006fff80000, 28636 ...
- Rmarkdown:输出pdf设置
输出pdf需要安装Ctex --- title: "first markdown" author: "name" date: "`r format(S ...
- oracle查询优化,存储过程select表循环插入另一个表,以及索引重建
查询语句pl/sql中用F5优化语句 ORACLE的explain plan工具的作用只有一个,获取语句的执行计划1.语句本身并不执行,ORACLE根据优化器产生理论上的执行计划2.语句的分析结果存放 ...
- windows系统下npm升级的正确姿势以及原理
本文来自网易云社区 作者:陈观喜 网上关于npm升级很多方法多种多样,但是在windows系统下不是每种方法都会正确升级.其中在windows系统下主要的升级方法有以下三种: 首先最暴力的方法删掉no ...
- 你了解的UIKit结构?
- jmeter更改启动编码设置
项目中碰到这样的问题,在eclipse经过utf-8转码的代码,能正常运行,放到了jmeter里面运行,就是乱码,如下: String s = "乔佳飞"; String ss = ...
- AutoMapper.RegExtension 介绍
AutoMapper.RegExtension 为一个特小特小特小的用来根据约定自动调用AutoMapper中的方法配置映射的扩展库.你可以引入该库也可以将源码中核心部分的代码文件夹整个拷贝至项目中. ...