只处理喜欢的颜色!
同理,只活喜欢的活法,只和喜欢的人相处,只吃喜欢吃的东西
#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
const int maxn=10010;
int give[maxn],dp[maxn];
map<int,int> lmp;//把喜欢序列映射成1~m,求最大不减子序列和
int main(){
int n,m,l,x;
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>x;
lmp[x]=i+1;
}
cin>>l;
int count=0;
for(int i=0;i<l;i++) {
cin>>x;//只加入喜欢的颜色
if(lmp.find(x)!=lmp.end()) give[count++]=lmp[x];
}
int ans=-1;
for(int i=0;i<count;i++){//计数是喜欢的颜色数个数
dp[i]=1;
for(int j=0;j<i;j++){
if(give[i]>=give[j]&&(dp[j]+1>dp[i])) dp[i]=dp[j]+1;
}
ans=max(ans,dp[i]);
}cout<<ans<<endl;
return 0;
}