题目背景
shik 搞核工程去了。
题目描述
127 想要考考你解方程的能力。
你有这样一个方程:AB \equiv A \pmod q,其中 q 为素数,且满足 A,B 为 n 阶方阵,并且矩阵中的元素 \in \{0,1,2,...,q−1\}(之后的所有矩阵也要满足这一点)。
方阵的同余 S \equiv T \pmod p 被定义为 \forall i,j \in \{1,2,...,n\},S_{i,j} \equiv T_{i,j} \pmod p,即对应位置同余。
对于这样的给定的 B,记 f(B) 表示使方程同余的所有 A 的数量。
但是给定一个 B 求解 f(B)太简单了,所以你需要对满足 |B| \ne 0(或者说可逆,非奇异)的 n 阶方阵求解 3^{f(B)} 的和。
并且由于这个和太大了,你需要将这个和对一个给定的数 mod 取模。
注意,只有 n,q,mod 是给定的。
输入格式
第一行包含三个用空格隔开的正整数 n,q,mod。
输出格式
一行一个非负整数代表题面中的和对 mod 取模后的答案。
样例数据
样例 1 输入
2 2 1000000007
样例 1 输出
43046970
样例 1 解释
对于矩阵 B=\left(\begin{array}{ll}0 & 1 \\ 1 & 0\end{array}\right), 满足条件的 A 有: \left(\begin{array}{ll}0 & 0 \\ 0 & 0\end{array}\right),\left(\begin{array}{ll}0 & 0 \\ 1 & 1\end{array}\right),\left(\begin{array}{ll}1 & 1 \\ 0 & 0\end{array}\right),\left(\begin{array}{ll}1 & 1 \\ 1 & 1\end{array}\right), 共 4 个
对于矩阵 B=\left(\begin{array}{ll}0 & 1 \\ 1 & 1\end{array}\right), 满足条件的 A 有: \left(\begin{array}{ll}0 & 0 \\ 0 & 0\end{array}\right), 共 1 个
对于矩阵 B=\left(\begin{array}{ll}1 & 0 \\ 0 & 1\end{array}\right), 满足条件的 A 为所有的 A 共 16 个
对于矩阵 B=\left(\begin{array}{ll}1 & 0 \\ 1 & 1\end{array}\right), 满足条件的 A 有: \left(\begin{array}{ll}0 & 0 \\ 0 & 0\end{array}\right),\left(\begin{array}{ll}0 & 0 \\ 1 & 0\end{array}\right),\left(\begin{array}{ll}1 & 0 \\ 0 & 0\end{array}\right),\left(\begin{array}{ll}1 & 0 \\ 1 & 0\end{array}\right), 共 4 个
对于矩阵 B=\left(\begin{array}{ll}1 & 1 \\ 0 & 1\end{array}\right), 满足条件的 A 有: \left(\begin{array}{ll}0 & 0 \\ 0 & 0\end{array}\right),\left(\begin{array}{ll}0 & 0 \\ 0 & 1\end{array}\right),\left(\begin{array}{ll}0 & 1 \\ 0 & 0\end{array}\right),\left(\begin{array}{ll}0 & 1 \\ 0 & 1\end{array}\right), 共 4 个
对于矩阵 B=\left(\begin{array}{ll}1 & 1 \\ 1 & 0\end{array}\right), 满足条件的 A 有: \left(\begin{array}{ll}0 & 0 \\ 0 & 0\end{array}\right), 共 1 个
故答案为 3^4+3^1+3^{16}+3^4+3^4+3^1 \equiv 43046970\left(\bmod 10^9+7\right)
样例 2 输入
100 127 998244353
样例 2 输出
881381862
样例解释二
的确如此
限制与约定
对于所有测试点,有 10^8 \le mod \le 10^9+7,2 \leq q < mod,且满足 q,mod 为素数
本题采用子任务捆绑测试,子任务描述及具体分值如下:
子任务 | 分值 | n | q | mod |
---|---|---|---|---|
1 | 10 | \le 3 | \le 3 | |
2 | 20 | \le 10^2 | ||
3 | 10 | \le 3 \cdot 10^3 | ||
4 | 20 | \le 10^6 | =998\,244\,353 | |
5 | 10 | \le 10^7 | =q+2 | |
6 | 30 |