虽然很多人说记模板提升空间有限,但是对于我这种菜鸟级别的人来说。能做的也只有记记模板了!
希望这个模板能帮到你,如果有更好的模板记得告诉我哦!!谢谢。
二维代码:
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int n,m,a[505],b[505],dp[505][505]; int LICS() { int max,i,j; memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) { max=0; for(j=1;j<=m;j++) { dp[i][j]=dp[i-1][j]; if(a[i]>b[j]&&max<dp[i-1][j]) max=dp[i-1][j]; if(a[i]==b[j]) dp[i][j]=max+1; } } max=0; for(i=1;i<=m;i++) { if(max<dp[n][i])max=dp[n][j]; } return max; }一维代码:
#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; int a[505],b[505],dp[505],n,m; int LICS() { int i,j,MAX; memset(dp,0,sizeof(dp)); for(i = 1; i<=n; i++) { MAX = 0; for(j = 1; j<=m; j++) { if(a[i]>b[j] && MAX<dp[j]) MAX = dp[j]; if(a[i]==b[j]) dp[j] = MAX+1; } } MAX = 0; for(i = 1; i<=m; i++) if(MAX<dp[i]) MAX = dp[i]; return MAX; }
原文地址:http://blog.csdn.net/jiangx1994/article/details/38010605