CF2108A.Permutation Warm-Up

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Permutation Warm-Up

题目描述

对于一个长度为 nn ^{\text{∗}} 的排列 pp,我们定义函数:

f(p)=i=1npiif(p) = \sum_{i=1}^{n} \lvert p_i - i \rvert

给定一个数字 nn。你需要计算当考虑从 11nn 的所有可能排列时,函数 f(p)f(p) 可以取到多少个不同的值。

^{\text{∗}} 一个长度为 nn 的排列是指由 11nnnn 个不同整数按任意顺序组成的数组。例如,[2,3,1,5,4][2,3,1,5,4] 是一个排列,但 [1,2,2][1,2,2] 不是排列(22 在数组中出现了两次),[1,3,4][1,3,4] 也不是排列(n=3n=3 但数组中出现了 44)。

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 tt1t1001 \le t \le 100)。接下来是测试用例的描述。

每个测试用例的第一行包含一个整数 nn1n5001 \leq n \leq 500)——排列中数字的个数。

输出格式

对于每个测试用例,输出一个整数——给定排列长度下函数 f(p)f(p) 的不同值的数量。

说明/提示

考虑输入的前两个例子。

对于 n=2n = 2,只有 22 个排列——[1,2][1, 2][2,1][2, 1]。$f([1, 2]) = \lvert 1 - 1 \rvert + \lvert 2 - 2 \rvert = 0$,$f([2, 1]) = \lvert 2 - 1 \rvert + \lvert 1 - 2 \rvert = 1 + 1 = 2$。因此,函数有 22 个不同的取值。

对于 n=3n=3,已经有 66 个排列:[1,2,3][1, 2, 3][1,3,2][1, 3, 2][2,1,3][2, 1, 3][2,3,1][2, 3, 1][3,1,2][3, 1, 2][3,2,1][3, 2, 1],对应的函数值分别为 002222444444,总共有 33 个不同的取值。

翻译由 DeepSeek V3 完成

样例

5
2
3
8
15
43
2
3
17
57
463

在线编程 IDE

建议全屏模式获得最佳体验