1045 Favorite Color Stripe (30 分)
思路有空更新
#include <iostream>
using namespace std;
int a[10010], vis[10010], dp[10010];
int main() {
int n, m, l, x, ret = 0;
cin >> n >> m;
for(int i = 1; i <= m; ++i){
cin >> x;
vis[x] = i;
}
cin >> l;
while(l--) {
cin >> x;
if(vis[x] != 0)
a[ret++] = vis[x];
}
int ans = 0;
for(int i = 0; i < ret; ++i){
dp[i] = 1;
for(int j = 0; j < i; ++j)
if(a[j] <= a[i])
dp[i] = max(dp[i], dp[j] + 1);
ans = max(ans, dp[i]);
}
cout << ans;
}