U425153 Two Sided Cards

题目背景

[TopCoder - 10947](https://community.topcoder.com/stat?c=problem_statement&pm=10947)。

题目描述

有 $n$ 张卡片,正面和反面分别组成了 $1 \sim n$ 的排列。现在你需要将这 $n$ 张卡片排成一排。卡片可以以任何顺序放置,每张卡片可以显示正面或背面,排成的序列不一定是一个排列。两种方案至少存在一个位置的数字不同,则这两种方案被认为是不同的。求排成的不同的序列的方案数,答案对 $10^9+7$ 取模。

输入格式

第一行,正整数 $n$,表示卡片的数量。 第二行,一个 $1 \sim n$ 的排列,表示卡片正面组成的排列。 第三行,一个 $1 \sim n$ 的排列,表示卡片反面组成的排列。

输出格式

一个数,能组成的不同方案数对 $10^9+7$ 取模的结果。

说明/提示

**本题存在子任务,你只有通过子任务所有测试点才能拿到对应分数!** 对于 Subtask 1,$n \leq 50$,分值 $50$ 分; 对于 Subtask 2,$n \leq 10^5$,分值 $50$ 分。 对于 $100\%$ 的数据,$n \leq 10^5$,保证牌的正反面均为 $1 \sim n$ 的排列。 [博客 & 题解。](https://www.cnblogs.com/XuYueming/p/18150666)