社区讨论

65pts求调!!感谢!!!

P5367【模板】康托展开参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@m3sr0go5
此快照首次捕获于
2024/11/22 20:59
去年
此快照最后确认于
2025/11/04 14:10
4 个月前
查看原帖
代码:
CPP
#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。
感谢感谢!!

回复

3 条回复,欢迎继续交流。

正在加载回复...