65pts求调!!感谢!!!
查看原帖
65pts求调!!感谢!!!
247472
cjsy18114楼主2024/11/22 20:59

代码:

#include<bits/stdc++.h>
using namespace std;
const unsigned long long mod=998244353uL;
int a[1000001],t[1000001],n;unsigned long long jc=1,sum; 
int lowbit(int x)
{
	return x&(-x);
}
void add(int x)
{
	for(int i=x;i<=n;i+=lowbit(i))
		t[i]++;
	return;
}
int ask(int x)
{
	int s=0;
	for(int i=x;i>=1;i-=lowbit(i))
		s+=t[i];
	return s;
}
int main()
{
	freopen("P5367_11.in","r",stdin); 
	scanf("%d",&n);sum=0;
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	memset(t,0,sizeof(t));
	for(int i=n;i>=1;i--)
	{
		if(i<n)
			jc=(jc*(n-i))%mod;
		sum+=jc*ask(a[i]);
		add(a[i]);
	} 
	printf("%d\n",(sum+1)%mod);
	fclose(stdin);
	return 0;
}

得分情况:11、13、15、16、17、19、20测试点WA,其他的均AC,总共65pts。
感谢感谢!!

2024/11/22 20:59
加载中...