Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
73633 | 陆彦哲 | 递增 | C++ | 解答错误 | 18 | 2 MS | 300 KB | 635 | 2023-04-08 09:04:56 |
#include <bits/stdc++.h> using namespace std; const int N=100001; int a[N],dp[N]; int n,ans=0; int t; int main(){ cin>>t; for(int i=1;i<=t;++i){ ans=0; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++){ if(a[i]>dp[ans]){ ans++; dp[ans]=a[i]; } else { int l=1,r=ans,mid; while(l<r){ mid=(l+r)/2; if(a[i]<=dp[mid]){ r=mid; } else{ l=mid+1; } } dp[l]=a[i]; } } cout<<"Case #"<<i<<':'<<endl<<n-ans<<endl; } return 0; }