la4394
题解:
首先区间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的更多相关文章
- String Painter, Chengdu 2008, LA4394
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
随机推荐
- gPRC学习笔记
gPRC学习笔记 gPRC基础教程. gPRC官方文档. protobuf 3.0的简易教程. 什么是RPC RPC(remote procedure call) -- 远程过程调用(相对于本地调用的 ...
- 使用Vagrant搭建本地python开发环境
使用Vagrant搭建本地python开发环境 关于vagrant:Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境,它使用Oracle的开源VirtualBox虚拟化系统也可以使 ...
- java结合testng,利用yaml做数据源的数据驱动实例
testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本.在这以yaml为例: 备注:@DataProvider的返回 ...
- Fiddler 抓包工具
序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操作.也可以用来检测网络安全.反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的 ...
- 一切皆Socket
“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. socket()函数介绍 socket函数介绍 函数原型 domai ...
- oracle存储大文本clob、blob
oracle存储大文本clob.blob 1 package cn.itcast.web.oracle.util; 2 3 import java.sql.Connection; 4 import j ...
- SVG前戏—让你的View多姿多彩
什么是SVG SVG的全称是Scalable Vector Graphics,叫可缩放矢量图形.是一种基于可扩展标记语言(XML).它和位图(Bitmap)相对,SVG不会像位图一样因为缩放而让图片质 ...
- 设置 Confluence 6 外部索引站点
Confluence 并不能比较容易的对外部站点进行搜索,这个是因为 Confluence 使用的是 Lucene 内部查找,但是你还是有下面 2 个可选的方案: 嵌入外部页面到 Confluence ...
- Confluence 6 恢复一个站点有关使用站点导出为备份的说明
推荐使用生产备份策略.我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 ho ...
- 修改Mysql5.7的root密码
Mysql5.7修改root密码 禁用root密码 1.修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不 ...