博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018.10.20 bzoj1068: [SCOI2007]压缩(区间dp)
阅读量:4318 次
发布时间:2019-06-06

本文共 624 字,大约阅读时间需要 2 分钟。

这题转移很妙啊。
f[l][r][1/0]f[l][r][1/0]f[l][r][1/0]表示对于区间[l,r][l,r][l,r]有/无重复的机会时压缩的最小值。
那么可以从三种情况转移过来。

  1. 当前区间允许重复时,分成两段分别压缩且两段都可以重复,那么为了不使前后发生冲突中间断开时需要加一个MMM
  2. 只压缩前面一段,后面一段不动。
  3. 如果当前区间能被分成两端一样的前面一段不压缩,后面一段重复前面的。

代码:

#include
using namespace std;int len,f[55][55][2];char s[55];inline bool check(int l,int r){
int mid=(r-l+1)/2; if((r-l+1)&1)return 0; for(int i=l;i<=(l+r)/2;++i)if(s[i]!=s[i+mid])return 0; return 1;}inline int dfs(int l,int r,bool op){
if(~f[l][r][op])return f[l][r][op]; if(l==r)return f[l][r][op]=1; f[l][r][op]=r-l+1; if(op)for(int i=l;i

转载于:https://www.cnblogs.com/ldxcaicai/p/10084853.html

你可能感兴趣的文章
AngularJs学习笔记-慕课网AngularJS实战
查看>>
数据库三大范式
查看>>
工作总结之二:bug级别、优先级别、bug状态
查看>>
访问修饰符、封装、继承
查看>>
更换pip源到国内镜像,提升pip下载速度.
查看>>
POJ 2265 Bee Maja (找规律)
查看>>
Kendo MVVM 数据绑定(七) Invisible/Visible
查看>>
[zz]kvm环境使用libvirt创建虚拟机
查看>>
bzoj1059 [ZJOI2007]矩阵游戏
查看>>
插入返回ibatis 的selectKey 实现插入数据后获得id
查看>>
vim 程序编辑器
查看>>
LIS(单调队列优化 C++ 版)(施工ing)
查看>>
刚接触Vuex
查看>>
四种加载React数据的技术对比(Meteor 转)
查看>>
Airthmetic_Approching
查看>>
操作文本文件
查看>>
公司项目的几个问题
查看>>
解决win7下打开Excel2007,报“向程序发送命令时出现问题”的错误
查看>>
Velocity快速入门教程
查看>>
关于集合常见的问题
查看>>