String painter
来源:互联网 发布:守望先锋英雄数据库 编辑:程序博客网 时间:2024/05/18 02:23
String painter
Time Limit : 5000/2000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 22 Accepted Submission(s) : 14
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
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.
Output
A single line contains one integer representing the answer.
Sample Input
zzzzzfzzzzz
abcdefedcba
abababababab
cdcdcdcdcdcd
Sample Output
6
7
Source
2008 Asia Regional Chengdu
Statistic | Submit | Back
比较复杂的区间DP
#include<iostream>#include<string>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;#define maxsize 105char s1[maxsize];char s2[maxsize];int dp[maxsize][maxsize];int ans[maxsize];int main(){ while (scanf("%s%s", s1, s2) != EOF) { int len = strlen(s1); memset(dp, 0, sizeof(dp)); for (int j = 0; j < len; j++) { for (int i = j; i >= 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 < len; i++) { ans[i] = dp[0][i]; } for (int i = 0; i < len; i++) { if (s1[i] == s2[i]) { ans[i] = ans[i - 1]; } else { for (int j = 0; j < i; j++) { ans[i] = min(ans[i], ans[j] + dp[j + 1][i]); } } } printf("%d\n", ans[len - 1]); } system("pause"); return 0;}
- String painter
- String painter
- String painter
- hdoj 2476 String painter
- HDU2476(String painter)DP
- String Painter LA4394
- [UVALive4394]String Painter
- UVALive 4394 String painter
- UVALive 4394 String painter
- HDU - 2476 String painter
- HDU 2476 String painter
- hdu 2476 String painter
- hdu2476 String painter
- uva1437 String painter
- Sicily 1911. String painter
- 【HDU2476】【String painter】
- hdu2476 String painter
- LA 4394 String painter
- 浅析人脸检测之Haar分类器方法
- 二分图——洛谷P1129 [ZJOI2007]矩阵游戏
- 递归算法简单理解(转)
- 第26课: Spark Runtime(Driver、Masster、Worker、Executor)内幕解密
- How Many Nines(ZOJ-3950)
- String painter
- Linux常用基础命令
- 机器人塔
- Dotween 淡入淡出 循环效果
- kube-controller-manager最佳配置
- 搜索专题 T
- Android中的进程和线程
- extjs集成echart
- IntelliJ IDEA 配合Maven使用Junit进行代码测试