Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
111979 | 陈星云 | 求最长不下降序列 | C++ | 解答错误 | 40 | 0 MS | 264 KB | 612 | 2023-11-25 09:35:56 |
#include<bits/stdc++.h> using namespace std; int n,k,a[111111],sid,ans,dp[1001],pre[111111]; int print(int x) { if(x==0) return 0; print(pre[x]); cout<<a[x]<<" "; } int main() { while(~scanf("%d",a+n)) 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); }