rt,Re on #3,返回 Exit code is -1073741819 ,找不到哪里能越界 qwq。
谢谢。
#include <bits/stdc++.h>
#define lint __int128
//#define int long long
#define fi first
#define se second
#define Il inline
#define Rg register
#define Ri Rg int
#define vec vector
#define pb push_back
#define IT ::iterator
#define p_que priority_queue
using namespace std;
//typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
const int N=2e5,Inf=1e9;
const db eps=1e-9,pi=acos(-1.0);
int T,n,a[N+5],dp[N+5][2];
int lsh[N+5],dn=0;
Il void Disc(){
for(Ri i=1;i<=n;i++)lsh[i]=a[i];
sort(lsh+1,lsh+n+1);dn=unique(lsh+1,lsh+n+1)-lsh-1;
for(Ri i=1;i<=n;i++)a[i]=lower_bound(lsh+1,lsh+dn+1,a[i])-lsh;
return;
}
Il void yuanshenqidong(){
cin>>n;for(Ri i=1;i<=n;i++)cin>>a[i];Disc();
for(Ri i=1;i<=dn;i++)dp[i][0]=dp[i][1]=0;int ans=n;
// if(dn>N){cout<<"FALSE!\n";return;}
// cout<<"check:"<<dn<<'\n';
for(Ri i=1;i<=n;i++){
// if(!a[i]){cout<<"WRONG!\n";return;}
dp[a[i]][0]=dp[(dp[a[i]][0]?a[i]:a[i]-1)][0]+1;
dp[a[i]][1]=max(dp[a[i]][1],dp[a[i]-1][0])+1;
ans=min(ans,n-max(dp[a[i]][0],dp[a[i]][1]));
// cout<<a[i]<<' '<<dp[a[i]][0]<<' '<<dp[a[i]][1]<<'\n';
}
// cout<<'\n';
cout<<ans<<'\n';
return;
}
signed main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>T>>n;while(T--)yuanshenqidong();
return 0;
}