Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
112233 | 曾煦翔 | 求最长不下降序列 | C++ | 通过 | 100 | 0 MS | 256 KB | 651 | 2023-11-25 11:04:58 |
#include<bits/stdc++.h> using namespace std; int n,k,sid,ans; int a[1001],dp[1001],pre[1001]; int print(int x) { if(x==0) return 0; print(pre[x]); cout<<a[x]<<" "; } int main() { while(~scanf("%d",a+1+n)) n++; for(int i=1;i<=n;i++) { int l=0;k=0; for(int j=1;j<i;j++) if((a[j]<a[i])&&l<dp[j]) { l=dp[j]; k=j;//下标 } dp[i]=l+1; pre[i]=k;//前驱 if(dp[i]>ans) { ans=dp[i]; sid=i;//下标 } } cout<<"max="<<ans<<endl; print(sid); return 0; }