CF1542E2.Abnormal Permutation Pairs (hard version)

省选/NOI-

通过率:0%

时间限制:4.00s

内存限制:512MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

This is the hard version of the problem. The only difference between the easy version and the hard version is the constraints on nn. You can only make hacks if both versions are solved.

A permutation of 1,2,…,n1, 2, \ldots, n is a sequence of nn integers, where each integer from 11 to nn appears exactly once. For example, [2,3,1,4][2,3,1,4] is a permutation of 1,2,3,41, 2, 3, 4, but [1,4,2,2][1,4,2,2] isn't because 22 appears twice in it.

Recall that the number of inversions in a permutation a1,a2,…,ana_1, a_2, \ldots, a_n is the number of pairs of indices (i,j)(i, j) such that i<ji \lt j and ai>aja_i \gt a_j.

Let pp and qq be two permutations of 1,2,…,n1, 2, \ldots, n. Find the number of permutation pairs (p,q)(p,q) that satisfy the following conditions:

  • pp is lexicographically smaller than qq.
  • the number of inversions in pp is greater than the number of inversions in qq.

Print the number of such pairs modulo modmod. Note that modmod may not be a prime.

这是该问题的困难版本。简单版本与困难版本的唯一区别在于对 nn 的约束条件。仅当两个版本均被解决时,才允许进行 hack。

1,2,…,n1, 2, \ldots, n 的一个排列是指由 nn 个整数组成的序列,其中每个从 11 到 nn 的整数恰好出现一次。例如,[2,3,1,4][2,3,1,4] 是 1,2,3,41, 2, 3, 4 的一个排列,但 [1,4,2,2][1,4,2,2] 不是,因为其中 22 出现了两次。

回顾:排列 a1,a2,…,ana_1, a_2, \ldots, a_n 中的逆序对数量,是指满足 i<ji \lt j 且 ai>aja_i \gt a_j 的下标对 (i,j)(i, j) 的个数。

设 pp 和 qq 是 1,2,…,n1, 2, \ldots, n 的两个排列。求满足以下条件的排列对 (p,q)(p,q) 的数量:

  • pp 的字典序小于 qq;
  • pp 中的逆序对数量大于 qq 中的逆序对数量。

输出该数量对 modmod 取模的结果。注意:modmod 不一定是质数。

输入格式

The only line contains two integers nn and modmod (1≤n≤5001\le n\le 500, 1≤mod≤1091\le mod\le 10^9).

唯一一行包含两个整数 nn 和 modmod(1≤n≤5001\le n\le 500,1≤mod≤1091\le mod\le 10^9)。

输出格式

Print one integer, which is the answer modulo modmod.

输出一个整数,即答案对 modmod 取模的结果。

输入输出样例

  • 输入#1

    4 403458273

    输出#1

    17

说明/提示

The following are all valid pairs (p,q)(p,q) when n=4n=4.

  • p=[1,3,4,2]p=[1,3,4,2], q=[2,1,3,4]q=[2,1,3,4],
  • p=[1,4,2,3]p=[1,4,2,3], q=[2,1,3,4]q=[2,1,3,4],
  • p=[1,4,3,2]p=[1,4,3,2], q=[2,1,3,4]q=[2,1,3,4],
  • p=[1,4,3,2]p=[1,4,3,2], q=[2,1,4,3]q=[2,1,4,3],
  • p=[1,4,3,2]p=[1,4,3,2], q=[2,3,1,4]q=[2,3,1,4],
  • p=[1,4,3,2]p=[1,4,3,2], q=[3,1,2,4]q=[3,1,2,4],
  • p=[2,3,4,1]p=[2,3,4,1], q=[3,1,2,4]q=[3,1,2,4],
  • p=[2,4,1,3]p=[2,4,1,3], q=[3,1,2,4]q=[3,1,2,4],
  • p=[2,4,3,1]p=[2,4,3,1], q=[3,1,2,4]q=[3,1,2,4],
  • p=[2,4,3,1]p=[2,4,3,1], q=[3,1,4,2]q=[3,1,4,2],
  • p=[2,4,3,1]p=[2,4,3,1], q=[3,2,1,4]q=[3,2,1,4],
  • p=[2,4,3,1]p=[2,4,3,1], q=[4,1,2,3]q=[4,1,2,3],
  • p=[3,2,4,1]p=[3,2,4,1], q=[4,1,2,3]q=[4,1,2,3],
  • p=[3,4,1,2]p=[3,4,1,2], q=[4,1,2,3]q=[4,1,2,3],
  • p=[3,4,2,1]p=[3,4,2,1], q=[4,1,2,3]q=[4,1,2,3],
  • p=[3,4,2,1]p=[3,4,2,1], q=[4,1,3,2]q=[4,1,3,2],
  • p=[3,4,2,1]p=[3,4,2,1], q=[4,2,1,3]q=[4,2,1,3].

当 n=4n=4 时,以下均为合法的 (p,q)(p,q) 对:

  • p=[1,3,4,2]p=[1,3,4,2],q=[2,1,3,4]q=[2,1,3,4],
  • p=[1,4,2,3]p=[1,4,2,3],q=[2,1,3,4]q=[2,1,3,4],
  • p=[1,4,3,2]p=[1,4,3,2],q=[2,1,3,4]q=[2,1,3,4],
  • p=[1,4,3,2]p=[1,4,3,2],q=[2,1,4,3]q=[2,1,4,3],
  • p=[1,4,3,2]p=[1,4,3,2],q=[2,3,1,4]q=[2,3,1,4],
  • p=[1,4,3,2]p=[1,4,3,2],q=[3,1,2,4]q=[3,1,2,4],
  • p=[2,3,4,1]p=[2,3,4,1],q=[3,1,2,4]q=[3,1,2,4],
  • p=[2,4,1,3]p=[2,4,1,3],q=[3,1,2,4]q=[3,1,2,4],
  • p=[2,4,3,1]p=[2,4,3,1],q=[3,1,2,4]q=[3,1,2,4],
  • p=[2,4,3,1]p=[2,4,3,1],q=[3,1,4,2]q=[3,1,4,2],
  • p=[2,4,3,1]p=[2,4,3,1],q=[3,2,1,4]q=[3,2,1,4],
  • p=[2,4,3,1]p=[2,4,3,1],q=[4,1,2,3]q=[4,1,2,3],
  • p=[3,2,4,1]p=[3,2,4,1],q=[4,1,2,3]q=[4,1,2,3],
  • p=[3,4,1,2]p=[3,4,1,2],q=[4,1,2,3]q=[4,1,2,3],
  • p=[3,4,2,1]p=[3,4,2,1],q=[4,1,2,3]q=[4,1,2,3],
  • p=[3,4,2,1]p=[3,4,2,1],q=[4,1,3,2]q=[4,1,3,2],
  • p=[3,4,2,1]p=[3,4,2,1],q=[4,2,1,3]q=[4,2,1,3]。

输入解题思路,AI测评打分。不知道怎么写?

首页