3 条题解
-
2
从升级版改变的,所以会有点奇怪(升级版要输出路径)
#include<bits/stdc++.h> using namespace std; int main() { int n,b[5002][3],l,maxn=-1,i,j; cin>>n; for(i=1;i<=n;++i) { cin>>b[i][1]; b[i][2]=1; } for(i=n-1;i>=1;--i) { l=0; for(j=i+1;j<=n;++j) { if(b[j][1]>b[i][1]&&b[j][2]>l) l=b[j][2]; } if(l>0) b[i][2]=l+1; } for(i=1;i<=n;++i) maxn=max(maxn,b[i][2]); cout<<maxn; return 0; }
-
1
#include<bits/stdc++.h> using namespace std; long i,n,a[10005],f[10005],j,ma; long read() { long x=0,m=1; char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-')m=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=x*10+ch-48; ch=getchar(); } return x*m; } void write(long x) { if(x<0){ putchar('-'); write(-x); return; } if(x>=10)write(x/10); putchar(x%10+'0'); } int main() { n=read(); for(i=1;i<=n;i++)a[i]=read(); for(i=1;i<=n;i++) { f[i]=1; for(j=1;j<i;j++) if(a[i]>a[j])f[i]=max(f[i],f[j]+1); ma=max(ma,f[i]); } cout<<ma; return 0; }dp
- 1
信息
- ID
- 11
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 285
- 已通过
- 84
- 上传者