AT_agc030_d [AGC030D] Inversion Sum

题目描述

给定一个长度为 $N$ 的整数序列 $A_1,A_2,\ldots,A_N$。你需要依次进行 $Q$ 次操作。第 $i$ 次操作由两个整数 $X_i,Y_i$ 给出,你可以从以下两种操作中恰好选择一种执行: - 交换 $A_{X_i}$ 和 $A_{Y_i}$ 的值; - 什么都不做。 所有操作的执行方式共有 $2^Q$ 种。请你求出对于所有可能的操作方式,最终得到的序列的逆序对数之和,并对 $10^9+7$ 取模。 其中,序列 $P_1,P_2,\ldots,P_M$ 的逆序对数定义为满足 $1\leq iP_j$ 的整数对 $(i,j)$ 的个数。

输入格式

输入从标准输入读入,格式如下: > $N$ $Q$ > $A_1$ $A_2$ $\ldots$ $A_N$ > $X_1$ $Y_1$ > $\vdots$ > $X_Q$ $Y_Q$

输出格式

输出所有可能的最终序列的逆序对数之和对 $10^9+7$ 取模的结果。

说明/提示

## 限制条件 - $1\leq N\leq 3000$ - $0\leq Q\leq 3000$ - $0\leq A_i\leq 10^9\ (1\leq i\leq N)$ - $1\leq X_i,Y_i\leq N\ (1\leq i\leq Q)$ - $X_i\neq Y_i\ (1\leq i\leq Q)$ - 输入均为整数 ## 样例说明 1 所有可能的操作方式如下,共有 $4$ 种: - 第 $1$ 次和第 $2$ 次都什么都不做。最终序列为 $1,2,3$,逆序对数为 $0$。 - 第 $1$ 次什么都不做,第 $2$ 次交换。最终序列为 $3,2,1$,逆序对数为 $3$。 - 第 $1$ 次交换,第 $2$ 次什么都不做。最终序列为 $2,1,3$,逆序对数为 $1$。 - 第 $1$ 次和第 $2$ 次都交换。最终序列为 $3,1,2$,逆序对数为 $2$。 这几种情况下逆序对数之和为 $0+3+1+2=6$,输出 $6$。 由 ChatGPT 4.1 翻译