Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
112233 曾煦翔 求最长不下降序列 C++ 通过 100 0 MS 256 KB 651 2023-11-25 11:04:58

Tests(10/10):


#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; }


测评信息: