首页 > 其他 > 详细

hdu 1423 最长公共递增子序列

时间:2015-12-13 12:33:38      阅读:196      评论:0      收藏:0      [点我收藏+]
技术分享
 1 #include<iostream>
 2  #include<stdio.h>
 3  #include<string.h>
 4  #include<algorithm>
 5  using namespace std;
 6 
 7  int a[1005],b[1005];
 8  int ss[1005];
 9  int dp[1005][1005];
10  int LCIS(int n,int m)
11  {
12      int k;
13      int sum=0;
14      for(int i=1;i<=n;i++)
15      {
16          k=0;
17          for(int j=1;j<=m;j++)
18          {
19              dp[i][j]=dp[i-1][j];
20              if(a[i]==b[j])
21                 //ss[j]=k+1;
22                dp[i][j]=k+1;
23              else if(a[i]>b[j])
24              {
25                  //if(k<ss[j])
26                    // k=ss[j];
27                     if(k<dp[i-1][j])
28                     k=dp[i-1][j];
29              }
30          }
31      }
32      for(int i=1;i<=m;i++)
33        //sum=max(sum,ss[i]);
34        if(sum<dp[n][i])
35          sum=dp[n][i];
36 
37        return sum;
38  }
39  int main()
40  {
41      int t,n,m,ans;
42      scanf("%d",&t);
43      while(t--)
44      {
45          memset(ss,0,sizeof(ss));
46          scanf("%d",&n);
47         for(int i=1;i<=n;i++)
48             scanf("%d",&a[i]);
49         scanf("%d",&m);
50         for(int i=1;i<=m;i++)
51             scanf("%d",&b[i]);
52        ans=LCIS(n,m);
53        printf("%d\n",ans);
54        if(t)
55         printf("\n");
56      }
57 
58  }
View Code

 

hdu 1423 最长公共递增子序列

原文:http://www.cnblogs.com/xiaotian-222/p/5042498.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!