题解:

首先区间dp是比较好想到的

然后我感觉接下来就是乱搞。。。

我们会发现接下来的操作 无非就是 用一种颜色去覆盖这整个区间 然后在做

于是我用了比较暴力的做法,f[i][j][k]表示i-j这段区间被k颜色完全覆盖

那么转移就是枚举f[i][kk][k] f[kk+1][j][k]

另外要注意还有同层之间可以用全部覆盖成一个颜色来转移

最后再跑一遍dp(这时候已知了g[i][j] (覆盖i-j的最小值))

代码:

#include <bits/stdc++.h>
using namespace std;
#define rint register int
#define IL inline
#define rep(i,h,t) for (rint i=h;i<=t;i++)
#define dep(i,t,h) for (rint i=t;i>=h;i--)
char s1[],s2[];
int f[][][],g[][],p[];
const int INF=1e9;
int main()
{
freopen("1.in","r",stdin);
freopen("1.out","w",stdout);
ios::sync_with_stdio(false);
while( cin>>s1>>s2)
{
int n=strlen(s1);
dep(i,n,) s1[i]=s1[i-],s2[i]=s2[i-];
rep(i,,n)
rep(j,i+,n) g[i][j]=INF;
rep(i,,n)
{
rep(k,,) f[i][i][k]=;
f[i][i][s2[i]-'a']=;
if (s1[i]==s2[i]) g[i][i]=; else g[i][i]=;
}
rep(i,,n)
rep(j,,n-i+)
{
int h=j,t=j+i-;
rep(k,,)
{
f[h][t][k]=INF;
rep(k1,h,t-)
{
f[h][t][k]=min(f[h][t][k],f[h][k1][k]+f[k1+][t][k]-);
}
g[h][t]=min(g[h][t],f[h][t][k]);
}
rep(k,,) f[h][t][k]=min(f[h][t][k],g[h][t]+);
}
rep(i,,n)
{
p[i]=INF;
rep(j,,i-)
p[i]=min(p[i],p[j]+g[j+][i]);
}
cout<<p[n]<<endl;
}
return ;
}

la4394的更多相关文章

  1. String Painter, Chengdu 2008, LA4394

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

随机推荐

  1. VB中的冒号——bug

    关于VB中的冒号,给许多人的印象都是:“一行可书写几句语句”.这么说是对的,但是有一种情况是不对的,那就是在条件语句中.这也是做一个VB项目升级的时候遇到,因为这个问题我查了好长时间程序,一直在找VB ...

  2. VS2017打包C#桌面应用

    原文地址:https://blog.csdn.net/houheshuai/article/details/78518097 在要打包项目的解决方案 右键→添加→ 新建项目 后出现如下选择 如果没有V ...

  3. tomcat session Memcache 共享

    背景 这次做的这个项目并发还真是挺高,单表一天产生百万条记录不在话下.结果导致运行过程中经常丢失数据,卡.慢等.开来终于要搞一次负载均衡了,之前实验学习了不少,但是没有在项目中实际用过,因为并发量不大 ...

  4. virtual box 安装centos min

    2018-4-19 22:20:40 星期四 之前不小心把用了很久的centos镜像删掉了.....这里记录下安装最小版centos的步骤 1. 安装centos 2. 开启网络, 并设置为随机启动 ...

  5. 我不是机器人:谷歌最新版验证码系统ReCaptcha破解已开源

    选自 Github 作者:George Hughey 机器之心编译 每个人都讨厌验证码,这些恼人的图片中包含你必须输入的字符,我们只有正确地填写才能继续访问网站.验证码旨在确认访问者是人还是程序,并防 ...

  6. Confluence 6 通过 SSL 或 HTTPS 运行 - 为 HTTPS 修改你的 Confluence 基础 URL

    在你的浏览器中,进入  > 基本配置(General Configuration). 单击 编辑(Edit). 修改服务器的基础 URL 为 HTTPS.请参考文档  configuring t ...

  7. (七)STL适配器

    1.适配器是稍微修改某些功能,比如三个参数改为两个参数,函数的名称改一下等等,可以出现在容器.迭代器和仿函数中. 2.适配器相当于对某个东西进行封装,例如A是B的适配器,则真正的功能实现是在B中,可以 ...

  8. java----DOS命令

    dir /?   查看帮助 dir /s   查看当前的目录,以及子目录

  9. tinymce-vue富文本编辑器(翻译)

    官方Tinymce Vue组件 翻译来自:https://github.com/tinymce/tinymce-vue 官方文档:https://www.tiny.cloud/docs/general ...

  10. Python交换a,b两个数值的三种方式

    # coding:utf-8 a = 1 b = 2 # 第一种方式 # t = a # 临时存放变量值 # a = b # b = t # 第二种方式 # a = a + b # a的值已经不是原始 ...