hdu 2476 String painter
来源:互联网 发布:淘宝买家金钻好处 编辑:程序博客网 时间:2024/05/21 07:10
String painter
Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4750 Accepted Submission(s): 2237
Problem Description
There are two strings A and B with equal length. Both strings are made up of lower case letters. Now you have a powerful string painter. With the help of the painter, you can change a segment of characters of a string to any other character you want. That is, after using the painter, the segment is made up of only one kind of character. Now your task is to change A to B using string painter. What’s the minimum number of operations?
Input
Input contains multiple cases. Each case consists of two lines:
The first line contains string A.
The second line contains string B.
The length of both strings will not be greater than 100.
The first line contains string A.
The second line contains string B.
The length of both strings will not be greater than 100.
Output
A single line contains one integer representing the answer.
Sample Input
zzzzzfzzzzzabcdefedcbaababababababcdcdcdcdcdcd
Sample Output
67
Source
2008 Asia Regional Chengdu
Recommend
lcy | We have carefully selected several similar problems for you: 2480 2481 2478 2482 2475
题意是给出2个字符串,每次对1串操作可以将任意一个区间内的字符转化为相同的任意一个字母,问最少操作多少次可以将1串变成2串;
最坏情况是对1串的每一个字符进行处理,那么初始化dp数组则是按照最坏情况,然后对2串进行遍历,如果发现有相同的字符,则可以进一步优化dp数组,然后就是对1串和2串进行同时遍历,对于相同位置上的字母如果相同,则操作数是和上一长度的操作数一样的,如果不相同,则在之前长度里面找到一个位置来找最小值,这里的状态优化:ans[i]=min(ans[i],ans[j]+dp[j+1][i])。其中j为从0到i-1中找的中间位置。
#include<iostream>#include<cstring>using namespace std;int main(){ char a[111],b[111]; int dp[111][111]; int ans[111]; int len; int i,j,k; while(cin>>a>>b) { int i,j,k; len=strlen(a); memset(dp,0,sizeof(dp)); for(i=0;i<len;i++) { for(j=i;j>=0;j--) { dp[j][i]=dp[j+1][i]+1; for(k=j+1;k<=i;k++) { if(b[j]==b[k]) { dp[j][i]=min(dp[j][i],dp[j+1][k]+dp[k+1][i]); } } } } for(i=0;i<len;i++) ans[i]=dp[0][i]; for(i=0;i<len;i++) { if(a[i]==b[i]) ans[i]=ans[i-1]; else { for(j=0;j<i;j++) ans[i]=min(ans[i],ans[j]+dp[j+1][i]); } } cout<<ans[len-1]<<endl; } return 0;}
阅读全文
0 0
- HDU - 2476 String painter
- HDU 2476 String painter
- hdu 2476 String painter
- hdu 2476 String painter
- hdu 2476 String painter
- HDU 2476 String painter
- hdu 2476 String painter
- hdu 2476 String painter
- hdu 2476 String painter
- HDU-2476-String painter
- hdu 2476 String painter dp
- String painter (hdu 2476)
- hdu 2476 String painter 动态规划
- HDU 2476 String Painter(JAVA版)
- hdu 2476 String painter 区间dp
- hdu 2476 String painter 区间dp
- HDU 2476 String painter 区间dp
- hdu 2476 String painter(区间DP)
- 4697: CFNetwork internal error (0xc01a:/XXX/CFNetwork-811.4.18/Loading/URLConnectionLoader.cpp:304)
- C++网络编程(一)
- 音视频同步(播放)原理
- 设计模式原则(5)--Law of Demeter(LoD)--迪米特法则
- UGUI 整页滑动
- hdu 2476 String painter
- spring cloud-实现Eureka注册中心的HA
- LintCode:M-房屋染色
- ZA7783:MIPI转LVDS/MIPI转RGB888/RGB转LVDS
- Ubuntu 16.04 下 Vim安装及配置
- APP接口, 图片json格式
- Mac 下配置阿里云服务器
- org.thymeleaf.spring4.templateresolver模板视图解析器
- MyBatis Mapper XML文件详解