您的位置:首页 > 其它

uva 10635 - Prince and Princess

2013-10-16 13:08 381 查看
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <map>
#include <algorithm>
#define maxn 250*250 + 10
#define ll long long
#define INF 1000000000
#define FOR(i, a, b) for(int i = a; i < b; ++i)
using namespace std;
int main()
{
int kase = 0, t;
scanf("%d", &t);
while(t--)
{
int n, p, q;
int a[maxn], b[maxn], g[maxn], len_b = 0, num;
scanf("%d%d%d", &n, &p, &q);
memset(a, 0, sizeof(a));
FOR(i, 1, p+2) {scanf("%d", &num); a[num] = i;}
FOR(i, 1, q+2) {
scanf("%d", &num);
if(a[num]) b[len_b++] = a[num];
}
FOR(i, 0, len_b+1) g[i] = INF;
int ans = 0;
int ss[maxn];
FOR(i, 0, len_b){
int k = lower_bound(g+1, g+len_b+1, b[i]) - g;
//ss[i] = k;
g[k] = b[i];
ans = max(ans, k);
}
//FOR(i, 0, len_b) printf("%d ", ss[i]); printf("\n");
printf("Case %d: %d\n", ++kase, ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: