Sol

区间DP.

转移很简单,枚举会形成的断长转移就行,话说上一题我就跟这个是差不多的思路,转移改了改,然后死活过不了...

同样都是SCOI的题...相差4年...

Code

/**************************************************************
Problem: 1090
User: BeiYu
Language: C++
Result: Accepted
Time:20 ms
Memory:1332 kb
****************************************************************/ #include<cstdio>
#include<cstring>
#include<iostream>
using namespace std; const int N = 105; char c[N];
int f[N][N]; int bit(int x){ if(x>=100) return 3;if(x>=10) return 2;return 1; }
int DP(int l,int r){
int &res=f[l][r];if(~res) return res;
if(l>r) return res=0;if(l==r) return res=1;int len=r-l+1;res=len;
for(int i=1;i<=len/2;i++) if(len%i==0){
int can=1;
for(int j=l+i;j<=r;j++) if(c[j]!=c[(j-l)%i+l]){ can=0;break; }
if(can) res=min(res,DP(l,l+i-1)+2+bit(len/i));
}for(int i=l;i<r;i++) res=min(res,DP(l,i)+DP(i+1,r));
return res;
} int main(){
scanf("%s",c+1);int n=strlen(c+1);memset(f,-1,sizeof(f));
cout<<DP(1,n)<<endl;
return 0;
}

  

BZOJ 1090: [SCOI2003]字符串折叠的更多相关文章

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

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

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

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

  3. bzoj 1090: [SCOI2003]字符串折叠【区间dp】

    设f[i][j]为区间(i,j)的最短长度,然后转移的话一个是f[i][j]=min(j-i+1,f[i][k]+f[k+1][j]),还有就是把(k+1,j)合并到(i,k)上,需要判断一下字符串相 ...

  4. 洛谷 4302 BZOJ 1090 SCOI2003 字符串折叠 UVA1630 Folding(输出方案版)

    [题解] 区间DP.  设f[i][j]表示i~j的最小代价.再枚举中间点k,很容易想到转移方程为f[i][j]=min(f[i][j],f[i][k]+f[k][j]),同时如果i~k可以通过重复获 ...

  5. 【BZOJ】1090: [SCOI2003]字符串折叠(dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1090 随便yy一下.. 设f[i,j]表示i-j的最小长度 f[i, j]=min{j-i+1, f ...

  6. 1090. [SCOI2003]字符串折叠【区间DP】

    Description 折叠的定义如下: 1. 一个字符串可以看成它自身的折叠.记作S  S 2. X(S)是X(X>1)个S连接在一起的串的折叠.记作X(S)  SSSS…S(X个S). ...

  7. 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 ...

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

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

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

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

随机推荐

  1. bs4_3select()

        Finding an Element with the select() Method 调用select()方法从BeautifulSoup对象索取网页元素,并用CSS 选择器传递你寻找的元素 ...

  2. 9月23日JavaScript作业----用DIV做下拉列表

    例题二.用div做下拉列表 <title>无标题文档</title> <style type="text/css"> *{ margin:0px ...

  3. Which is the best opencv or matlab for image processing?

    http://www.researchgate.net/post/Which_is_the_best_opencv_or_matlab_for_image_processing Annette Mor ...

  4. ecshop修改产品详情 折扣倒计时时间

    文件:lefttime.js  位置:/js/lefttime.js 要求:去掉倒计时时间的 “天”数 原代码 ) { Temp = dateLeft + _day + hourZero + hour ...

  5. HTML \ XHTML \XML 的区别

    虽然是很简单的知识,但如果总是在需要的时候去查找,不需要的时候就丢掉,未免心里总是觉的不踏实.因为你就像是垃圾收购站,有垃圾(知识)就往里面拖,拖不下了就丢掉一些(忘了).不去整理,也因此也不知道丢的 ...

  6. jsp的标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  7. Thinkphp 模板中直接对数据处理 模板中使用函数 中文字符串截取

    1.Thinkphp 模板中直接对数据处理:{$data.name|substr=0,3} 2.中文字符串截取函数:mb_substr=0,14,'utf-8' 3.中文字符串统计:iconv_str ...

  8. 新浪微博客户端(47)-在TextView中插入表情

    DJEmotionPageView.m // 发送点击广播(和android类似,区别在于android的广播是只要有上下文对象context,就可以发送) // iOS中的通知发送和接收都是通过NS ...

  9. Linux系统改变ls文件和文件夹颜色方法

    本人之前就针对蓝色文件夹的颜色  我是这样修改的:    cp /etc/DIR_COLORS   ~/.dir_colors vim   ~/.dir_colors   , 将DIR 01;33   ...

  10. 如何删除git远程分支

    1,在开发过程中,大家在远程创建了许多分支,有些是无用的,该如何删除呢,可以参考下面的方法. 如果不再需要某个远程分支了,比如搞定了某个特性并把它合并进了远程的 master 分支(或任何其他存放 稳 ...