博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU2476 String painter(区间dp)
阅读量:6690 次
发布时间:2019-06-25

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

题意:

可以拿刷子刷s1,可以将任意区间刷成任意字母。问最少刷多少遍才能把s1刷成s2。

思路:

这道题太难想了(本人太弱)。。能想到是区间dp,想了半天都没法转移状态。

最后看了看网上个大神牛的博客,才恍然大悟。。

思路就是先用dp记一下空白串到s2串需要刷的次数,然后再刷s1串到s2串。

#include 
#include
#include
#include
#include
#include
#include
using namespace std;char s[105],s2[105];int dp[105][105],ans[105];int main(){ //freopen("in.txt","r",stdin); while(~scanf("%s%s",s,s2)) { int l=strlen(s); memset(dp,0,sizeof(dp)); for(int j=0;j
=0;i--) { dp[i][j]=dp[i+1][j]+1; for(int k=i+1;k<=j;k++) if(s2[i]==s2[k]) dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k+1][j]); } for(int i=0;i

 

转载于:https://www.cnblogs.com/d-e-v-i-l/p/5297642.html

你可能感兴趣的文章
ORACLE---添加控制文件
查看>>
学习感悟——从如何读书引发的思考
查看>>
我的友情链接
查看>>
CSAPP缓冲区溢出实验记录(二)
查看>>
TD-LTE的那些事
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Linux内核中用d_path得到绝对路径名
查看>>
Qt中QString,char,int,QByteArray之间到转换
查看>>
Exchange Server 2007邮箱存储服务器的集群和高可用性技术(上)
查看>>
磁盘管理与磁盘阵列RAID
查看>>
Linux学习笔记4-软件安装
查看>>
8.python之面相对象part.8(类装饰器)
查看>>
Spring的两个特性
查看>>
进程管理工具top、htop、glances、dstat
查看>>
使用Jenkins发布腾讯云项目
查看>>
sqlserver 2005数据库,提示属性Owner不可用于数据库“[test]”。该对象可能没有此属性...
查看>>
Spark通过Java Web提交任务
查看>>
appium实现的一个简单的测试用例
查看>>
IOS手机截屏
查看>>