比赛 H大佬的水题争霸赛 评测结果 AAAAAAAAAAAAAAA
题目名称 最长公共上升子序列 最终得分 100
用户昵称 梦那边的美好ET 运行时间 0.090 s
代码语言 C++ 内存使用 2.49 MiB
提交时间 2018-08-05 12:43:03
显示代码纯文本
  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<cmath>
  5. #include<algorithm>
  6. using namespace std;
  7. int f[1001][1001],n,m,a[1001],b[1001];
  8. int main(){
  9. freopen("lcis.in","r",stdin);
  10. freopen("lcis.out","w",stdout);
  11. cin>>n;
  12. for(int i=1;i<=n;i++)cin>>a[i];
  13. cin>>m;
  14. for(int i=1;i<=m;i++)cin>>b[i];
  15. for(int i=1;i<=n;i++){
  16. for(int j=1;j<=m;j++){
  17. if(a[i]!=b[j])f[i][j]=f[i-1][j];
  18. else{
  19. for(int k=0;k<j;k++){
  20. if(b[k]<b[j])f[i][j]=max(f[i][j],f[i][k]+1);
  21. }
  22. }
  23. }
  24. }
  25. int ma=0;
  26. for(int i=1;i<=m;i++)ma=max(ma,f[n][i]);
  27. cout<<ma;
  28. return 0;
  29. }
  30.