提交时间:2023-04-08 09:04:56

运行 ID: 73633

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