提交记录 4248


用户 题目 状态 得分 用时 内存 语言 代码长度
wxs666666 noi18b. 【NOI2018】冒泡排序 Wrong Answer 84 213.795 ms 16420 KB C++ 1.21 KB
提交时间 评测时间
2018-07-19 10:56:50 2020-07-31 22:47:27
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;

#define lg long long
#define MN 600005
#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 #166.695 ms13 MB + 768 KBAcceptedScore: 4

Testcase #266.706 ms13 MB + 768 KBAcceptedScore: 4

Testcase #366.707 ms13 MB + 768 KBAcceptedScore: 4

Testcase #466.705 ms13 MB + 768 KBAcceptedScore: 4

Testcase #566.705 ms13 MB + 768 KBAcceptedScore: 4

Testcase #666.703 ms13 MB + 768 KBAcceptedScore: 4

Testcase #766.704 ms13 MB + 768 KBAcceptedScore: 4

Testcase #866.663 ms13 MB + 768 KBAcceptedScore: 4

Testcase #966.664 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1066.664 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1166.665 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1266.723 ms13 MB + 772 KBAcceptedScore: 4

Testcase #1366.691 ms13 MB + 772 KBAcceptedScore: 4

Testcase #1466.724 ms13 MB + 772 KBAcceptedScore: 4

Testcase #1566.695 ms13 MB + 772 KBAcceptedScore: 4

Testcase #1666.734 ms13 MB + 772 KBAcceptedScore: 4

Testcase #1766.832 ms13 MB + 772 KBAcceptedScore: 4

Testcase #1866.885 ms13 MB + 772 KBAcceptedScore: 4

Testcase #1966.843 ms13 MB + 772 KBAcceptedScore: 4

Testcase #2066.846 ms13 MB + 772 KBAcceptedScore: 4

Testcase #21146.991 ms14 MB + 788 KBAcceptedScore: 4

Testcase #22165.627 ms15 MB + 24 KBWrong AnswerScore: 0

Testcase #23191.255 ms15 MB + 456 KBWrong AnswerScore: 0

Testcase #24211.08 ms15 MB + 892 KBWrong AnswerScore: 0

Testcase #25213.795 ms16 MB + 36 KBWrong AnswerScore: 0


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