提交记录 4251


用户 题目 状态 得分 用时 内存 语言 代码长度
wxs666666 noi18b. 【NOI2018】冒泡排序 Accepted 100 281.567 ms 30488 KB C++ 1.21 KB
提交时间 评测时间
2018-07-19 11:02:28 2020-07-31 22:47:42
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;

#define lg long long
#define MN 1200005
#define lsk 998244353
#define lb(x) ((x)&(-(x)))

int n;
int a[MN],c[MN],D[MN];

void add(int x,int y){
	for(;x<=n;x+=lb(x))c[x]+=y;
}

int qry(int x){
	int res=0;
	for(;x;x-=lb(x))res+=c[x];
	return res;
}

lg fac[MN],ifac[MN];

lg Pow(lg A,lg B){
	lg res=1;
	for(;B;B>>=1,A=A*A%lsk)if(B&1)res=res*A%lsk;
	return res;
}

void init(){
	fac[0]=ifac[0]=1;
	for(int i=1;i<MN;++i){
		fac[i]=fac[i-1]*i%lsk;
		ifac[i]=Pow(fac[i],lsk-2);
	}
}

lg C(int A,int B){
	return fac[A]*ifac[B]%lsk*ifac[A-B]%lsk;
}

lg Q(int A,int B){
	return C(A,(A+B)/2);
}

lg T(int A,int B){
	if(B<0)return 0;
	return ((Q(A,B)-Q(A,B+2))%lsk+lsk)%lsk;
}

int main(){
	int TT;init();
	scanf("%d",&TT);
	while(TT--){
		memset(D,0,sizeof D);
		memset(c,0,sizeof c);
		scanf("%d",&n);lg res=0;
		for(int i=1;i<=n;++i)add(i,1);
		for(int i=1;i<=n;++i)scanf("%d",a+i);
		int mx=0,mn=1;
		for(int i=1;i<n;++i){
			int g=max(mx,a[i]);
			int f=qry(g)+1;
			int d=n*2-(i-1)*2-f;
			res=(res+T(d,f))%lsk;
			D[a[i]]=1;add(a[i],-1);
			if(a[i]>mx)mx=a[i];
			else{
			    if(a[i]!=mn)break;
			}
			while(D[mn])++mn;
		}
		printf("%lld\n",res);
	}
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #1133.89 ms27 MB + 496 KBAcceptedScore: 4

Testcase #2133.888 ms27 MB + 496 KBAcceptedScore: 4

Testcase #3133.89 ms27 MB + 496 KBAcceptedScore: 4

Testcase #4133.892 ms27 MB + 496 KBAcceptedScore: 4

Testcase #5133.893 ms27 MB + 496 KBAcceptedScore: 4

Testcase #6133.893 ms27 MB + 496 KBAcceptedScore: 4

Testcase #7133.89 ms27 MB + 496 KBAcceptedScore: 4

Testcase #8133.893 ms27 MB + 496 KBAcceptedScore: 4

Testcase #9133.893 ms27 MB + 496 KBAcceptedScore: 4

Testcase #10133.892 ms27 MB + 496 KBAcceptedScore: 4

Testcase #11133.895 ms27 MB + 496 KBAcceptedScore: 4

Testcase #12133.91 ms27 MB + 496 KBAcceptedScore: 4

Testcase #13133.925 ms27 MB + 496 KBAcceptedScore: 4

Testcase #14133.92 ms27 MB + 496 KBAcceptedScore: 4

Testcase #15133.923 ms27 MB + 496 KBAcceptedScore: 4

Testcase #16133.926 ms27 MB + 496 KBAcceptedScore: 4

Testcase #17134.066 ms27 MB + 500 KBAcceptedScore: 4

Testcase #18134.077 ms27 MB + 500 KBAcceptedScore: 4

Testcase #19134.073 ms27 MB + 500 KBAcceptedScore: 4

Testcase #20134.078 ms27 MB + 500 KBAcceptedScore: 4

Testcase #21214.02 ms28 MB + 512 KBAcceptedScore: 4

Testcase #22233.114 ms28 MB + 776 KBAcceptedScore: 4

Testcase #23258.959 ms29 MB + 184 KBAcceptedScore: 4

Testcase #24278.757 ms29 MB + 620 KBAcceptedScore: 4

Testcase #25281.567 ms29 MB + 792 KBAcceptedScore: 4


Judge Duck Online | 评测鸭在线
Server Time: 2026-04-13 22:16:26 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠