#5 WA求助
查看原帖
#5 WA求助
537879
WangChao_FengYue楼主2024/11/13 16:50
#include<bits/stdc++.h>
#define fi first
#define se second
using namespace std;
const int N=1e5+10;
int t,n;
pair<int,int>a[N];
priority_queue<pair<int,int> >s;
int main(){
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
		for(int i=1;i<=n;i++)scanf("%d",&a[i].fi),a[i].se=i;
		int ans=0;
		for(int i=1;i<=n;i++)s.push({-a[i].fi,i});
		sort(a+1,a+n+1);
		while(!s.empty()){
			pair<int,int>wdc=s.top();
			wdc.fi=-wdc.fi;
			s.pop();
			pair<int,int>f={n-wdc.fi,1<<30};
			int wb=upper_bound(a+1,a+n+1,f)-a-1;
			for(int i=1;i<=wb;i++){
				if(wdc.se<=a[i].se)++ans;
			}
		}
		printf("%d\n",ans);
	}
	return 0;
}
2024/11/13 16:50
加载中...