#ABC330G. 逆序数平方和

逆序数平方和

逆序数平方和

题目描述

给定长度为 NN 的序列 A=(A1,,AN)A = (A_1,\ldots,A_N)AA 的每个元素要么是 1-1,要么是 11NN 之间的整数,并且 11NN 的每个整数在 AA 中至多出现一次。

当且仅当满足 Ai1Pi=AiA_i \neq -1 \Rightarrow P_i = A_i 时,(1,,N)(1,\ldots,N) 的排列 P=(P1,,PN)P=(P_1,\ldots,P_N) 被称为好排列。求所有好排列的逆序数的平方和,并对 998244353998244353 取模。

排列 PP 的逆序数是指满足 1i<jN1\leq i \lt j \leq NPi>PjP_i \gt P_j 的整数对 (i,j)(i,j) 的个数。

输入格式

输入按以下格式从标准输入给出:

NN
A1A_1 \ldots ANA_N

输出格式

输出答案。

样例

4
3 -1 2 -1
29

共有两个好排列:P=(3,1,2,4)P=(3,1,2,4)P=(3,4,2,1)P=(3,4,2,1),它们的逆序数分别为 2255

因此答案为 22+52=292^2 + 5^2 = 29

10
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
952235647
15
-1 -1 10 -1 -1 -1 2 -1 -1 3 -1 -1 -1 -1 1
460544744

数据范围

  • 1N30001\leq N\leq 3000
  • Ai=1A_i = -11AiN1\leq A_i \leq N
  • 11NN 的每个整数在 AA 中至多出现一次
  • 所有输入值均为整数
难度 省选/NOI-
通过率
尝试 0
已通过 0
ID
3136
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签