【洛谷P2470】[SCOI2007]压缩
压缩
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define MAXN 55
#define INF 0x3f3f3f3f
#define mid ((l+r)>>1)
int n,f[MAXN][MAXN][];
//不妨处理每个子串时,我们都在它的前面放一个M,最后答案长度-1即可
//f[l][r][0]表示子串[l,r]中除了前面的M,串中还存在其他的M的最短长度
//f[l][r][1]则表示只有前面一个M的最短长度 /*
三个转移方程:
1.if(该串左右两半相同)
f[l][r][1]=min(f[l][r][1],f[l][mid][1]+1); 压缩与不压缩
2. i l~r-1
f[l][r][1]=min(f[l][r][1],f[l][i][1]+r-i);
3. i l~r-1
f[l][r][0]=min(f[l][r][0],min(f[l][i][0],f[l][i][1])+min(f[i+1][r][0],f[i+1][r][1]));
*/
char s[MAXN];
int dp(int l,int r,bool op){
if(f[l][r][op]) return f[l][r][op];
if(l==r) return f[l][r][op]=;
int &d=f[l][r][op]=r-l+;
if(op){
bool flag=;
if((r-l+)%==) flag=;
if(flag)
for(int i=l;i<=mid;i++)
if(s[i]!=s[mid+i-l+]){ flag=; break; }
if(flag) d=min(d,dp(l,mid,)+);
for(int i=l;i<r;i++)
d=min(d,dp(l,i,)+r-i);
}
else
for(int i=l;i<r;i++)
d=min(d,min(dp(l,i,),dp(l,i,))+min(dp(i+,r,),dp(i+,r,)));
return d;
}
int main()
{
scanf("%s",s+);
n=strlen(s+);
dp(,n,); dp(,n,);
printf("%d\n",min(f[][n][],f[][n][])-);
return ;
}
【洛谷P2470】[SCOI2007]压缩的更多相关文章
- 洛谷P2470 [SCOI2007]压缩(区间dp)
题意 题目链接 Sol 神仙题Orz 考虑区间dp,如果我们只设\(f[l][r]\)表示\(s_{lr}\)被压缩的最小长度,而不去关心内部\(M\)分布的话,可能在转移的时候转移出非法状态 因此考 ...
- 洛谷P2470||bzoj1068 [SCOI2007]压缩
bzoj1068 洛谷P2470 区间dp入门题?只要注意到每个M“管辖”的区间互不相交即可 错误记录:有点小坑,比如aaaacaaaac最优解为aRRcR(意会坑在哪里),踩了一次 #include ...
- 【洛谷p1319】压缩技术
(许久不见,甚是想念) 压缩技术[传送门] 洛谷上滴算法标签: 然而这是一道入门难度的题.(不管不管,就写它了) 好的先说一下思路吧wait!我忘记了咋做的当时. 首先做题第一道坎儿,如何输入若干个( ...
- 洛谷 P1763 状态压缩dp+容斥原理
(题目来自洛谷oj) 一天,maze决定对自己的一块n*m的土地进行修建.他希望这块土地共n*m个格子的高度分别是1,2,3,...,n*m-1,n*m.maze又希望能将这一些格子中的某一些拿来建蓄 ...
- luogu P2470 [SCOI2007]压缩
传送门 dalao们怎么状态都设的两维以上啊?qwq 完全可以一维状态的说 设\(f[i]\)为前缀i的答案,转移就枚举从前面哪里转移过来\(f[i]=min(f[j-1]+w(j,i))(j\in ...
- 洛谷 P2053 [SCOI2007]修车 解题报告
P2053 [SCOI2007]修车 题目描述 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术 ...
- 洛谷P1124 文件压缩
https://www.luogu.org/problem/show?pid=1124 题目背景 提高文件的压缩率一直是人们追求的目标.近几年有人提出了这样一种算法,它虽然只是单纯地对文件进行重排,本 ...
- P2470 [SCOI2007]压缩
传送门 区间dp,记\(dp(l,r,t)\)表示区间\((l,r)\),\(t\)表示这个区间中能不能放\(M\).如果可以,枚举中间哪里放\(M\)来压缩.也可以不压缩,后面直接跟上去.如果左右重 ...
- 洛谷 P1124 文件压缩
P1124 文件压缩 题目背景 提高文件的压缩率一直是人们追求的目标.近几年有人提出了这样一种算法,它虽然只是单纯地对文件进行重排,本身并不压缩文件,但是经这种算法调整后的文件在大多数情况下都能获得比 ...
随机推荐
- JS识别不同浏览器信息
总所周知,不同浏览器兼容是不一致的,然而今天我在Coding的时候深深体会到那个痛苦,一样的代码在Firefox里面是没问题的,可以根据索引找到 对应的对象元素然后进行操作,但是同样的却获取不到对象元 ...
- CentOS 下 安装 JDK8
1.下载 在 /usr/local 目录下创建目录 java # cd /usr/local # mkdir java 登录网址:http://www.oracle.com/technetwork/j ...
- WCF的入门教程dome(一)
一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...
- C#语言-02.数据类型
a. 数据类型 i. 值类型:是一种由类型的实际值表示的数据类型,存储在栈内的存储空间中,由于编译器编译后将源代码中的值类型变量直接对应到唯一的存储空间上,直接访问该存储空间,故值类型的数据具有较快地 ...
- 天气小雨, 心情多云, 练习标准的键盘ABC打法
今天看到饿了么转型生活做千亿美元公司 突然想到一些就写下来 当时外卖一份8元 10元的年代那个开心啊 很久以前宁可跑个远, 都不愿意叫外卖 叫了大概1年的外卖了, 之前还感到便宜多样, 现在感觉到的是 ...
- Git和GitHub在线学习资源整理(转)
原文地址:http://blog.csdn.net/duqi_2009/article/details/12646711 电子书 GotGitHub Git Workflow 文章 GitHub Fu ...
- IDEA+Maven+多个SpringBoot子模块(创建多模块整合项目)
https://blog.csdn.net/willjgl/article/details/77773634 https://blog.csdn.net/qqHJQS/article/details/ ...
- Cloud
Cloud = Data + Routing + Computing + Storage
- 关于maven包的引入net.sf.json的问题
最开始通过在pom.xml文件中加入 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId& ...
- java web的安全约束--表单的验证
例子,表单和JDBCRealm的安全验证 参考了一篇文章http://www.cnblogs.com/dyllove98/archive/2013/07/31/3228698.html 1.要在wab ...