UVA 10635 Prince and Princess——LIS
2018-03-07 16:56
330 查看
乍一看以为是LCS, 但是pq复杂度太高,不过题目中每个序列里的所有元素都不同,根据这一点我们可以遍历数组p,另vis【p【i】】=i,相当于给p中每个元素映射上一个编号,这些编号代表他们的遍历顺序。然后遍历q,根据vis数组将vis【p【i】】提取到新数组a中,然后在a中求一遍LIS就好了(仔细想一想就想到了,不解释了)#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1e5;
const int INF = 0x3f3f3f3f;
int T, N, P, Q, p[maxn], q[maxn], vis[maxn], n, a[maxn], dp[maxn];
int main() {
scanf("%d", &T);
for (int kase = 1; kase <= T; kase++) {
scanf("%d %d %d", &N, &P, &Q); P++; Q++;
for (int i = 0; i < P; i++) scanf("%d", &p[i]);
for (int i = 0; i < Q; i++) scanf("%d", &q[i]);
memset(vis, -1, sizeof(vis));
for (int i = 0; i < P; i++) vis[p[i]] = i+1;
n = 0;
for (int i = 0; i < Q; i++) {
if (vis[q[i]] == -1) continue;
a[n++] = vis[q[i]];
}
memset(dp, INF, sizeof(dp));
for (int i = 0; i < n; i++) *lower_bound(dp, dp+n, a[i]) = a[i];
printf("Case %d: %d\n", kase, lower_bound(dp, dp+n, INF) - dp);
}
return 0;
}
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1e5;
const int INF = 0x3f3f3f3f;
int T, N, P, Q, p[maxn], q[maxn], vis[maxn], n, a[maxn], dp[maxn];
int main() {
scanf("%d", &T);
for (int kase = 1; kase <= T; kase++) {
scanf("%d %d %d", &N, &P, &Q); P++; Q++;
for (int i = 0; i < P; i++) scanf("%d", &p[i]);
for (int i = 0; i < Q; i++) scanf("%d", &q[i]);
memset(vis, -1, sizeof(vis));
for (int i = 0; i < P; i++) vis[p[i]] = i+1;
n = 0;
for (int i = 0; i < Q; i++) {
if (vis[q[i]] == -1) continue;
a[n++] = vis[q[i]];
}
memset(dp, INF, sizeof(dp));
for (int i = 0; i < n; i++) *lower_bound(dp, dp+n, a[i]) = a[i];
printf("Case %d: %d\n", kase, lower_bound(dp, dp+n, INF) - dp);
}
return 0;
}
相关文章推荐
- UVA 10635 Prince and Princess LCS转化为LIS *
- Uva 10635 - Prince and Princess(LIS)
- UVA 10635 - Prince and Princess LCS转化为LIS
- Uva 10635 Prince and Princess (LCS变形LIS)
- UVA - 10635 Prince and Princess (求LIS)
- dp(LCS转化成LIS)uva 10635 - Prince and Princess
- UVA 10635 - Prince and Princess LCS转化为LIS
- uva 10635 Prince and Princess(LCS成问题LIS问题O(nlogn))
- UVa 10635 - Prince and Princess(LCS转LIS)
- UVA 10635 Prince and Princess(LCS转LIS)
- UVA 10635 Prince and Princess DP LIS
- uva_10635 - Prince and Princess(LIS)
- UVA 10635 Prince and Princess DP LIS
- 【UVA 10635】【LCS转化成LIS】 Prince and Princess
- UVA - 10635 Prince and Princess LCS转LIS
- uva 10635 - Prince and Princess lcs->lis 2018-2-8
- UVa 10635 Prince and Princess / LCS 转 LIS
- UVA 10635 Prince and Princess (LCS优化转LIS)
- UVA - 10635 Prince and Princess 转化为 LIS
- Uva - 10635 - Prince and Princess(LCS转LIS)