UVA1625Color Lenth(DP+LCS变形 未AC)
2016-01-30 18:28
302 查看
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105116#problem/C
紫书P276
res[i][j]表示第一个序列移动i个,第二个序列移动j个之后有几个已经出现但尚未结束,dp[i][j]表示第一个序列移动i个,第二个序列移动j个之后的总长度
dp[i][j] = min(dp[i - 1][j],dp[i][j - 1]) + res[i][j]
TLE
紫书P276
res[i][j]表示第一个序列移动i个,第二个序列移动j个之后有几个已经出现但尚未结束,dp[i][j]表示第一个序列移动i个,第二个序列移动j个之后的总长度
dp[i][j] = min(dp[i - 1][j],dp[i][j - 1]) + res[i][j]
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAX = 5000 + 10; const int INF = 0x3f3f3f3f; char str1[MAX],str2[MAX]; int dp[MAX][MAX],res[MAX][MAX]; int start1[30],End1[30],start2[30],End2[30],vis[30]; int n,m; int main() { int tase; scanf("%d", &tase); while(tase--) { scanf("%s%s", str1 + 1,str2 + 1); n = strlen(str1 + 1); m = strlen(str2 + 1); memset(vis, 0, sizeof(vis)); memset(End1, -1, sizeof(End1)); memset(End2, -1, sizeof(End2)); for(int i = 0; i < 27; i++) start1[i] = start2[i] = INF; for(int i = 1; i <= n; i++) { if(start1[str1[i] - 'A'] == INF) start1[str1[i] - 'A'] = i; End1[str1[i] - 'A'] = i; } for(int i = 1; i <= m; i++) { if(start2[str2[i] - 'A'] == INF) start2[str2[i] - 'A'] = i ; End2[str2[i] - 'A'] = i; } memset(res, 0, sizeof(res)); for(int i = 0; i <= n; i++) { for(int j = 0; j <= m; j++) { int cnt = 0; for(int k = 0; k < 26; k++) { if(start1[k] == INF && start2[k] == INF) continue; if(start1[k] > i && start2[k] > j) continue; if(End1[k] <= i && End2[k] <= j) continue; cnt++; } res[i][j] = cnt; } } dp[0][0] = 0; for(int i = 1; i <= m ; i++) dp[0][i] = dp[0][i - 1] + res[0][i]; for(int j = 1; j <= n; j++) dp[j][0] = dp[j - 1][0] + res[j][0]; for(int i = 1; i <= n; i++) { for(int j = 1; j <= m; j++) { dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + res[i][j]; } } printf("%d\n", dp [m]); } return 0; }
TLE
相关文章推荐
- 用友NC V6.3打造集团企业高效信息平台
- 1036. 跟奥巴马一起编程(15)
- Format可能存在的坑
- 反馈通道改善系统性能_20160130
- 从Spark架构中透视job
- ubuntu 的 document viewer evince 发生 Could not open X display 错误的处理
- 【转】一个测试工程师的2015总结和2016年小展望
- LNMP安装与启动脚本编写
- 数字证书原理
- 【转】移动App测试中的最佳做法
- 一个知乎重度用户眼中的知乎
- ZOJ 1014 OPERAND
- 一个知乎重度用户眼中的知乎
- IOS BezierPath 贝塞尔曲线画图详解
- php设计模式:值对象模式
- Lua学习笔记-第四章
- iOS动画和特效(四)controller间的自定义过渡效果
- sql中的CHARINDEX和暂时表
- mybatis 中#与$的区别
- linux 信号 中断的系统调用