#ATagc022f. [AGC022F] Checkers

[AGC022F] Checkers

题目描述

X=10100X = 10^{100}。Inaba 在数轴上放置了 NN 个棋子,第 ii 个棋子位于坐标 XiX^i

每经过 11 秒,Inaba 可以选择两个棋子 AABB,将 AA 移动到关于 BB 对称的位置,然后移除 BB(即使 AABB 在同一位置也可以,AA 移动后与其他棋子重合也没有关系)。

经过 N1N-1 秒后,只剩下一个棋子。请问最后剩下的棋子可能出现的位置有多少种?请输出这个数对 109+710^9+7 取模的结果。

输入格式

输入从标准输入读取,格式如下:

NN

输出格式

输出最后剩下的棋子可能出现的位置数,对 109+710^9+7 取模。

样例 1

输入

3

输出

12

样例 2

输入

4

输出

84

样例 3

输入

22

输出

487772376

说明/提示

限制条件

  • 1N501 \leq N \leq 50
  • NN 是整数。

样例解释 1

33 个棋子,分别位于 10100, 10200, 1030010^{100},\ 10^{200},\ 10^{300}。我们称它们为 AABBCC。以下是 1212 种可能的移动方式中的两种:

  • 11 秒让 AA 跳过 BB,第 22 秒让 AA 跳过 CC。此时 AA 的最终位置为 2×103002×10200+101002 \times 10^{300} - 2 \times 10^{200} + 10^{100}
  • 11 秒让 CC 跳过 AA,第 22 秒让 BB 跳过 CC。此时 BB 的最终位置为 2×1030010200+4×10100-2 \times 10^{300} - 10^{200} + 4 \times 10^{100}

棋子的移动方式共有 3×2×2=123 \times 2 \times 2 = 12 种,并且每种情况下最后的棋子都在不同的位置。

样例解释 3

不要忘记输出答案对 109+710^9+7 取模。

由 ChatGPT 4.1 翻译