uva10635 - Prince and Princess
2016-02-13 11:21
295 查看
题意:
给你两个序列,求最长公共子序列。
思路:
直接LCS会超时,所以将其转为LIS,即将其中一个序列转为单调递增的序列,再遍历,不断更新直至最长。
代码如下:
给你两个序列,求最长公共子序列。
思路:
直接LCS会超时,所以将其转为LIS,即将其中一个序列转为单调递增的序列,再遍历,不断更新直至最长。
代码如下:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 90000; int n, m, k, ha , a , dp ; int main() { int cas, index = 0; scanf("%d", &cas); while (cas--) { memset(ha, 0, sizeof(ha)); memset(a, 0, sizeof(a)); memset(dp, 0, sizeof(dp)); scanf("%d%d%d", &n, &m, &k); m++; k++; int i,cur; for (i = 1; i <= m; i++) { scanf("%d", &cur); ha[cur] = i; } for (i = 1; i <= k; i++) scanf("%d", &a[i]); int cnt = 0, j; for (i = 1; i <= k; i++) { if (!ha[a[i]])//不存在 continue; int flag = 1; for (j = 0; j < cnt; j++) { if (ha[a[i]] < ha[dp[j]]) { dp[j] = a[i]; flag = 0; break; } } if (flag) dp[cnt++] = a[i]; } printf("Case %d: %d\n", ++index, cnt); } return 0; }
相关文章推荐
- usaco 1.4.2 milk3
- 深度学习与人脸识别系列(2)__深度学习的环境搭建(ubuntu+caffe)
- phpstorm 常用设置
- Java设计模式(二十三)----解释器模式
- bzoj:1221;vijos 1552 软件开发
- EntityFramework简介
- 使用ECMAscript5中的forEach函数遍历数组
- 深度学习与人脸识别系列(1)__算法流程和教程大纲(基于caffe)
- [bzoj1499] [NOI2005]瑰丽华尔兹
- 最小生成树prim、
- 转换函数
- 冥想
- OC-NSString从文件中读取字符串
- 《计算机硬件体系及IO优化》
- POJ 3468_A Simple Problem with Integers(线段树)
- POJ 3468_A Simple Problem with Integers(线段树)
- 【C语言】C语言常量和变量
- 【C语言】C语言常量和变量
- Rapid IO接口
- 一个简单的弹出对话框的shellcode(取自0day2一书)