P2470 [SCOI2007]压缩
2024-09-30 17:44:40
区间dp,记\(dp(l,r,t)\)表示区间\((l,r)\),\(t\)表示这个区间中能不能放\(M\)。如果可以,枚举中间哪里放\(M\)来压缩。也可以不压缩,后面直接跟上去。如果左右重复的,尝试压缩一下,那么循环节里是不能放的
//minamoto
#include<bits/stdc++.h>
using namespace std;
const int N=55,inf=0x3f3f3f3f;
char s[N];int f[N][N][2],n;
bool same(int L,int R){
if((R-L+1)&1)return false;int M=(R-L+1)>>1;
for(int i=L;i<L+M;++i)if(s[i]!=s[i+M])return false;return true;
}
int solve(int L,int R,bool is){
if(L==R)return 1;if(f[L][R][is])return f[L][R][is];int res=inf;
if(is)for(int i=L;i<R;++i)res=min(res,1+solve(L,i,1)+solve(i+1,R,1));
for(int i=L;i<R;++i)res=min(res,solve(L,i,is)+R-i);
if(same(L,R))res=min(res,solve(L,(L+R)>>1,0)+1);return f[L][R][is]=res;
}
int main(){
// freopen("testdata.in","r",stdin);
scanf("%s",s+1);n=strlen(s+1);
printf("%d\n",solve(1,n,1));return 0;
}
最新文章
- mysql密码重置
- OAuth2授权原理
- Viking Village维京村落demo中的粒子距离消隐
- select、poll、epoll程序实例
- chrome 下载插件包及离线安装
- Java Eclipse常规设置
- smarty的ASSIGN()函数
- 【机器学习】--FP-groupth算法从初始到应用
- Sharepoint 2016 配置FBA(四)添加用户到Membership数据库
- STS中springmvc.xml配置文件
- 【Java深入研究】10、红黑树
- php 图形用户界面GUI 开发
- PC/FORTH 变量|常数|数组
- MAC book 无法删除普通用户的解决办法
- Swift5 语言指南(十) 枚举
- c++中string类对象和字符数组之间的相互转换
- 基本数据类型int,bool,str
- 使用netfilter_queue改包笔记
- golang基础类型
- MySQL 逻辑备份工具
热门文章
- IntelliJ IDEA 13.1.1版本偶然的错误
- 289. Game of Live
- Help Jimmy DP
- sql将日期按照年月分组并统计数量
- Ubuntu 16.04创建Swap分区或增加Swap分区容量(转)
- JSP操作
- JDBC的数据类型
- Ionic3 填坑记录 - java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
- 合并链表 —— 剑指Offer
- 链表倒置,这个还是考验仔细程度,第一遍还没做对 —— 剑指Offer