Part one:
由于本人的的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));
}
}