大佬求问
就是一个普通的最长上升子序列,用dp做,第17行
f[i]=i;
非常不理解,为什么要把所有的dp数组都初始化为1?
初始化为0就40分???
这里0和1有区别吗?
#include <iostream>
#include <cstdio>
using namespace std;
int a[5050];
int f[5050];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
int x=1;
for(int i=1;i<=n;i++)
{
f[i]=1;
for(int j=1;j<i;j++)
{
if(a[i]>a[j])
{
f[i]=max(f[j]+1,f[i]);
}
}
x=max(x,f[i]);
}
cout<<x<<endl;
return 0;
}