[题目链接]

https://www.lydsy.com/JudgeOnline/problem.php?id=1090

[算法]

区间DP

[代码]

#include<bits/stdc++.h>
using namespace std;
#define MAXN 110 int len;
int f[MAXN][MAXN];
char s[MAXN]; inline int calc(int x)
{
int ret = ;
while (x)
{
ret++;
x /= ;
}
return ret;
}
inline bool check(int l,int r,int pl,int pr)
{
int i;
if ((r - l + ) % (pr - pl + ) != ) return false;
for (i = l; i <= r; i++)
{
if (s[i] != s[(i - l) % (pr - pl + ) + pl])
return false;
}
return true;
}
inline int dp(int l,int r)
{
int i;
if (l == r) return f[l][r] = ;
if (f[l][r] != -) return f[l][r];
f[l][r] = r - l + ;
for (i = l; i < r; i++)
{
f[l][r] = min(f[l][r],dp(l,i) + dp(i + ,r));
if (check(i + ,r,l,i))
f[l][r] = min(f[l][r],dp(l,i) + calc((r - i) / (i - l + ) + ) + );
}
return f[l][r];
}
int main()
{ scanf("%s",s + );
len = strlen(s + );
memset(f,,sizeof(f));
printf("%d\n",dp(,len)); return ; }

[SCOI 2003] 字符串折叠的更多相关文章

  1. 洛谷P4302 [SCOI]字符串折叠 [字符串,区间DP]

    题目传送门 字符串折叠 题目描述 折叠的定义如下: 一个字符串可以看成它自身的折叠.记作S = S X(S)是X(X>1)个S连接在一起的串的折叠.记作X(S) = SSSS…S(X个S). 如 ...

  2. BZOJ1090: [SCOI2003]字符串折叠

    区间dp. 一种是分段dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]); 一种是这一段可以缩写dp[i][j]=min(dp[i][j],dp[i][l]+2+ca ...

  3. 【BZOJ-1090】字符串折叠 区间DP + Hash

    1090: [SCOI2003]字符串折叠 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1127  Solved: 737[Submit][Stat ...

  4. bzoj 1090 [SCOI2003]字符串折叠(区间DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1090 [题意] 给定一个字符串,问将字符串折叠后的最小长度. [思路] 设f[i][j ...

  5. BZOJ 1090: [SCOI2003]字符串折叠 区间DP

    1090: [SCOI2003]字符串折叠 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  6. 【BZOJ1090】[SCOI2003]字符串折叠(动态规划)

    [BZOJ1090][SCOI2003]字符串折叠(动态规划) 题面 BZOJ 洛谷 题解 区间\(dp\).设\(f[i][j]\)表示压缩\([i,j]\)区间的最小长度.显然可以枚举端点转移.再 ...

  7. 【ZJ选讲·字符串折叠】

    给一个字符串(len<=100) 把这个字符串折叠(就是压缩) 记 X(子串) 表示重复 X次该子串 比如 3(orz)  orzorzorz  来点神奇例子: AAAAAAAAAA ...

  8. BZOJ 1090 字符串折叠(Hash + DP)

    题目链接 字符串折叠 区间DP.$f[l][r]$为字符串在区间l到r的最小值 正常情况下 $f[l][r] = min(f[l][r], f[l][l+k-1]+f[l+k][r]);$ 当$l$到 ...

  9. 【bzoj1090】 [SCOI2003]字符串折叠

    [bzoj1090] [SCOI2003]字符串折叠 2014年3月9日3,1140 Description 折叠的定义如下: 1. 一个字符串可以看成它自身的折叠.记作S  S 2. X(S)是X ...

随机推荐

  1. python爬虫:找房助手V1.0-爬取58同城租房信息

    1.用于爬取58上的租房信息,限成都,其他地方的,可以把网址改改: 2.这个爬虫有一点问题,就是没用多线程,因为我用了之后总是会报: 'module' object has no attribute ...

  2. 图像连通域检测的2路算法Code

    本文算法描述参考链接:http://blog.csdn.net/icvpr/article/details/10259577 两遍扫描法: (1)第一次扫描: 访问当前像素B(x,y),如果B(x,y ...

  3. How to add jdk8 in Eclipse Indigo

    I just read How to have Eclipse use JDK8 to compile a project? What i added jdk8 to eclipse as,  Fro ...

  4. js document 触发按键事件

    // 键盘控制 var keyEvent = (function () { document.onkeydown = function (e) { if (e.keyCode === 38) { // ...

  5. Linux 之常用操作指令详解

    1. 查看当做操作目录位置 > pwd 2. 查看(当前)目录里边的文件内容 > ls //list > ls -l 或ll //显示文件的详细信息 > ls -al //al ...

  6. centos7 删除libc.so.6 紧急救援

    wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz tar zxvf glibc-2.18.tar.gz cd glibc-2.18 mkdir b ...

  7. BZOJ 3943: [Usaco2015 Feb]SuperBull 最小生成树

    Code: // luogu-judger-enable-o2 #include<bits/stdc++.h> #define setIO(s) freopen(s".in&qu ...

  8. apache+php连接数据库

    ######## 安装APACHE ##############安装apr/usr/src/apache+php/tar xf apr-1.5.2.tar.gzcd apr-1.5.2./config ...

  9. mongodb分片集群开启安全认证

    原文地址:https://blog.csdn.net/uncle_david/article/details/78713551 对于搭建好的mongodb副本集加分片集群,为了安全,启动安全认证,使用 ...

  10. 8.在idea中配置maven

    1.在IntelliJ IDEA中配置maven 打开-File-Settings 2.我们还可以在勾选一些其他选项 3.我们可以更新一下本地仓库和远程仓库,这个样在pom.xml文件中添加依赖jia ...