2021-01-28

#include <bits/stdc++.h>
using namespace std;
string a,b;
int maxl[1001][1001];
int main()
{
    while (cin>>a>>b)
    {
        int x,y;
        x=a.size();
        y=b.size();
        memset(maxl,0,sizeof(maxl));
        for (int i = 1; i <= x; i++)
        {
            for (int j = 1; j <= y; j++)
            {
                if(a[i-1]==b[j-1]) maxl[i][j]=maxl[i-1][j-1]+1;
                else maxl[i][j]=max(maxl[i-1][j],maxl[i][j-1]);
            }            
        }        
        printf("%d\n",maxl[x][y]);
    }   
}
#include <bits/stdc++.h>
using namespace std;
int a[1010],d[1010];
int main()
{
    int n,max1;
    while (cin>>n,n)
    {
        for (int i = 0; i < n; i++)
        {
            scanf("%d",&a[i]);
        }
        max1=d[0]=a[0];
        for (int i = 0; i < n; i++)
        {
            d[i]=a[i];
            for (int j = 0; j < i; j++)
            {
                if(a[i]>a[j]&&d[j]+a[i]>d[i]) d[i]=d[j]+a[i];
            }
            if(d[i]>max1) max1=d[i];
        }
        printf("%d\n",max1);
    }    
}
posted @ 2021-01-28 21:01  Star_tears  阅读(23)  评论(0)    收藏  举报