天天看點

小白回顧----DP專練

Part one:

由于本人的的dp水準實在是太水了,是以我準備在這開一個dp的練習回顧,将以後遇到的dp題全都寫入這一章中

小白回顧----DP專練

題意:

求最長公共遞增子序列

題解:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll dp[1005];
ll  a[1005];
ll lis(ll n)
{

    for(ll i=0;i<n;i++)
    {
        dp[i]=1;
        for(ll j=0;j<i;j++)
        {
            if(a[j]<a[i])
                dp[i]=max(dp[i],dp[j]+1);
        }
    }
    ll maxx=0;
    for(ll i=0;i<n;i++)
    {
        if(maxx<dp[i])
            maxx=dp[i];
    }
    return maxx;

}
int main()
{

    ll n;
    while(~scanf("%lld",&n))
    {

        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);

        printf("%lld\n",lis(n));

    }


}      
上一篇: Block Towers