#ATagc047d. [AGC047D] Twin Binary Trees
[AGC047D] Twin Binary Trees
题目描述
受到电视剧《怪奇物语》的启发,熊的 Rimac 决定在现实世界和镜像世界之间来回穿梭。
有两棵高度为 的完全二叉树,每个顶点按照标准方式编号,从 到 。也就是说,根节点编号为 ,编号为 的节点的子节点编号分别为 和 。
设一棵树的叶子数为 ,即 。
给定 的一个排列 。这表示两棵树之间有 条特殊边。即,第一棵树中编号为 的顶点与第二棵树中编号为 的顶点通过一条特殊边相连。

输入样例 1 的图示。,绿色的边为特殊边
定义一个环的积为其包含的所有顶点编号的乘积。请你求出恰好包含两条特殊边的所有简单环的积之和,并对 取模。
这里,简单环指的是长度不少于 ,且没有重复顶点和边的环。
输入格式
输入以如下格式从标准输入读入(其中 ):
输出格式
请输出恰好包含两条特殊边的所有简单环的积之和,并对 取模。
样例 1
输入
3
2 3 1 4
输出
121788
样例 2
输入
2
1 2
输出
36
样例 3
输入
5
6 14 15 7 12 16 5 4 11 9 3 10 8 2 13 1
输出
10199246
说明/提示
限制
- (其中 )
- (即该数列是 的一个排列)
样例解释 1
下图展示了需要考虑的两个环(实际上还有其他)。第一个环的积为 $2 \cdot 5 \cdot 6 \cdot 3 \cdot 1 \cdot 2 \cdot 5 \cdot 4 = 7200$,第二个环的积为 $1 \cdot 3 \cdot 7 \cdot 7 \cdot 3 \cdot 1 \cdot 2 \cdot 5 \cdot 4 \cdot 2 = 35280$。第三个环不满足恰好有两条特殊边,因此不计入答案。 
样例解释 2
图中唯一的环确实包含两条特殊边,其顶点编号的积为 。
由 ChatGPT 4.1 翻译