#P15293. [MCO 2023] Segment Union

[MCO 2023] Segment Union

题目描述

给定 NN 个正整数 x1,x2,…,xNx_{1}, x_{2}, \ldots, x_{N} 以及另外 NN 个正整数 a1,a2,…,aNa_{1}, a_{2}, \ldots, a_{N}。

设 P=(p1,p2,…,pN)P = (p_{1}, p_{2}, \ldots, p_{N}) 是 {1,2,…,N}\{1, 2, \ldots, N\} 的一个排列。初始时,整个数轴为白色。对于每个 1≤i≤N1 \le i \le N,将区间 [xi−api,xi+api][x_{i} - a_{p_{i}}, x_{i} + a_{p_{i}}] 涂黑。定义 f(P)f(P) 为数轴上黑色线段的总长度。例如,若涂黑的区间为 [1,3],[2,4],[6,7][1, 3], [2, 4], [6, 7],则黑色线段的总长度为 4−1+7−6=44 - 1 + 7 - 6 = 4。

求所有 {1,2,…,N}\{1, 2, \ldots, N\} 的排列 PP 的 f(P)f(P) 之和,并对 109+710^{9} + 7 取模。

输入格式

输入的第一行包含一个整数 NN (1≤N≤15001 \le N \le 1500)。

输入的第二行包含 NN 个以空格分隔的整数 x1,x2,…,xNx_{1}, x_{2}, \ldots, x_{N} (−109≤xi≤109-10^9 \le x_{i} \le 10^{9})。

输入的第三行包含 NN 个以空格分隔的整数 a1,a2,…,aNa_{1}, a_{2}, \ldots, a_{N} (1≤ai≤1091 \le a_{i} \le 10^{9})。

输出格式

输出一个整数,表示所有 {1,2,…,N}\{1, 2, \ldots, N\} 的排列 PP 的 f(P)f(P) 之和,对 109+710^{9} + 7 取模后的结果。

3
2 6 15
1 2 4
78
1
1
7
14
4
7 2 7 2
3 2 1 2
240
7
1 1 2 9 17 26 30
4 4 4 4 4 4 4
181440
11
257869734 -413759255 671386528 312442221 -479133479 837936940 -775252592 -785229024 -306462979 685409332 62181930
987323333 202379759 242380132 464003610 240120482 288801746 7692451 552912477 795257073 629515685 667287542
862900292
9
0 0 -2000 396 727 999 999 1300 2000
26 268 268 396 561 604 883 998 999
616426169

提示

注释

样例 1: 长度为 33 的排列共有 3!=63! = 6 个。设 pp 为排列。

  • p=(1,2,3)p = (1, 2, 3):区间为 [1,3][1,3], [4,8][4,8], [11,19][11,19],总长度 = 1414。
  • p=(1,3,2)p = (1, 3, 2):区间为 [1,3][1,3], [2,10][2,10], [13,17][13,17],总长度 = 1313。
  • p=(2,1,3)p = (2, 1, 3):区间为 [0,4][0,4], [5,7][5,7], [11,19][11,19],总长度 = 1414。
  • p=(2,3,1)p = (2, 3, 1):区间为 [0,4][0,4], [2,10][2,10], [14,16][14,16],总长度 = 1212。
  • p=(3,1,2)p = (3, 1, 2):区间为 [−2,6][-2,6], [5,7][5,7], [13,17][13,17],总长度 = 1313。
  • p=(3,2,1)p = (3, 2, 1):区间为 [−2,6][-2,6], [4,8][4,8], [14,16][14,16],总长度 = 1212。

答案为 14+13+14+12+13+12=7814 + 13 + 14 + 12 + 13 + 12 = 78。

样例 2: 只有一个排列,唯一的区间为 [−6,8][-6, 8]。答案为 8−(−6)=148 - (-6) = 14。

样例 3: 注意可能存在重复的值。不同的排列可能产生相同的 aa 序列,但依然需要将它们重复计数(如同它们是不同的一样)。

样例 4: 此样例符合子任务 1 的约束条件。

样例 5: 记得输出答案对 109+710^9 + 7 取模后的结果。

计分

子任务 1 (77 分): 所有 aia_i 相等,即对于所有 ii (1≤i≤n1 \le i \le n)有 ai=a1a_i = a_1

子任务 2 (88 分): N≤9N \le 9, −2000≤xi, ai≤2000-2000 \le x_i,\,a_i \le 2000

子任务 3 (3131 分): N≤300N \le 300, −105≤xi, ai≤105-10^5 \le x_i,\,a_i \le 10^5

子任务 4 (1717 分): N≤300N \le 300

子任务 5 (2525 分): −105≤xi, ai≤105-10^5 \le x_i,\,a_i \le 10^5

子任务 6 (1212 分): 无额外限制

翻译由 DeepSeek 完成