No.2405 Minimal Matrix Decomposition
タグ : / 解いたユーザー数 21
作問者 : 👑 獅子座じゃない人 / テスター : 👑 amentorimaru
問題文
素数 $P$ と正の整数 $N,M$ および $N\times M$ 行列 $A$ が与えられます。 $A$ の成分は $0\leq A_{ij}\lt P\ (1\leq i\leq N,\ 1\leq j\leq M)$ を満たします。
ルエルくんは行列 $A$ を覚えようとしており、覚える成分の個数を減らすために $A$ を複数の行列の積に分解しようと考えました。
長さ $L\ (L\geq 1)$ の空でない行列の列 $(B^{(1)},\ B^{(2)},\ \ldots,\ B^{(L)})$ を考え、 $B^{(k)}$ を $N_k\times M_k$ 行列 $(1\leq k\leq L)$ とします。 $L=1$ でもよく、 $0\leq B_{ij}^{(k)}\lt P\ (1\leq k\leq L,\ 1\leq i\leq N_k,\ 1\leq j\leq M_k)$ で、成分の加算と乗算はそれぞれ $P$ を法とする合同演算とします。
$A=B^{(1)}B^{(2)}\ldots B^{(L)}$ を満たす列のなかで $\sum_{k=1}^L N_kM_k$ が最小となるものの例を $1$ つ求めてください。なお、出力の形式は「出力」のブロックを参照してください。
入力
$P$ $N\ M$ $A_{11}\ A_{12}\ A_{13}\ \ldots\ A_{1M}$ $A_{21}\ A_{22}\ A_{23}\ \ldots\ A_{2M}$ $A_{31}\ A_{32}\ A_{33}\ \ldots\ A_{3M}$ $\vdots$ $A_{N1}\ A_{N2}\ A_{N3}\ \ldots\ A_{NM}$
- 入力は全て整数
- $P$ は素数
- $2\leq P\leq 10^9$
- $1\leq N\leq 400$
- $1\leq M\leq 400$
- $0\leq A_{ij}\lt P\ (1\leq i\leq N,\ 1\leq j\leq M)$
出力
$L$ $N_1\ M_1$ $B_{11}^{(1)}\ B_{12}^{(1)}\ B_{13}^{(1)}\ \ldots\ B_{1M_1}^{(1)}$ $B_{21}^{(1)}\ B_{22}^{(1)}\ B_{23}^{(1)}\ \ldots\ B_{2M_1}^{(1)}$ $B_{31}^{(1)}\ B_{32}^{(1)}\ B_{33}^{(1)}\ \ldots\ B_{3M_1}^{(1)}$ $\vdots$ $B_{N_11}^{(1)}\ B_{N_12}^{(1)}\ B_{N_13}^{(1)}\ \ldots\ B_{N_1M_1}^{(1)}$ $N_2\ M_2$ $B_{11}^{(2)}\ B_{12}^{(2)}\ B_{13}^{(2)}\ \ldots\ B_{1M_2}^{(2)}$ $B_{21}^{(2)}\ B_{22}^{(2)}\ B_{23}^{(2)}\ \ldots\ B_{2M_2}^{(2)}$ $B_{31}^{(2)}\ B_{32}^{(2)}\ B_{33}^{(2)}\ \ldots\ B_{3M_2}^{(2)}$ $\vdots$ $B_{N_21}^{(2)}\ B_{N_22}^{(2)}\ B_{N_23}^{(2)}\ \ldots\ B_{N_2M_2}^{(2)}$ $\vdots$ $N_L\ M_L$ $B_{11}^{(L)}\ B_{12}^{(L)}\ B_{13}^{(L)}\ \ldots\ B_{1M_L}^{(L)}$ $B_{21}^{(L)}\ B_{22}^{(L)}\ B_{23}^{(L)}\ \ldots\ B_{2M_L}^{(L)}$ $B_{31}^{(L)}\ B_{32}^{(L)}\ B_{33}^{(L)}\ \ldots\ B_{3M_L}^{(L)}$ $\vdots$ $B_{N_L1}^{(L)}\ B_{N_L2}^{(L)}\ B_{N_L3}^{(L)}\ \ldots\ B_{N_LM_L}^{(L)}$
最初に $L$ を出力し、 $N_k,\ M_k$ と $B^{(k)}$ の成分 $(1\leq k\leq L)$ を順に出力してください。
$0\leq B_{ij}^{(k)}\lt P\ (1\leq k\leq L,\ 1\leq i\leq N_k,\ 1\leq j\leq M_k)$ を満たすように出力し、最後に改行してください。
サンプル
サンプル1
入力
998244353 5 4 21 17 13 9 18 16 14 12 15 15 15 15 12 14 16 18 9 13 17 21
出力
2 5 2 1 5 2 4 3 3 4 2 5 1 2 4 1 2 3 4 4 3 2 1
$\begin{pmatrix}1&5\\2&4\\3&3\\4&2\\5&1\end{pmatrix}\begin{pmatrix}1&2&3&4\\4&3&2&1\end{pmatrix}=\begin{pmatrix}21&17&13&9\\18&16&14&12\\15&15&15&15\\12&14&16&18\\9&13&17&21\end{pmatrix}$ が成立します。また、 $\sum_{k=1}^L N_kM_k=5\cdot 2+2\cdot 4=18$ であり、 $\sum_{k=1}^L N_kM_k$ を $18$ より小さくすることはできません。
サンプル2
入力
5 2 2 1 2 3 4
出力
1 2 2 1 2 3 4
$L=1$ となる場合もあります。
サンプル3
入力
7 3 4 2 3 4 5 4 6 1 3 6 2 5 1
出力
2 3 1 1 2 3 1 4 2 3 4 5
成分の加算と乗算はそれぞれ $P$ を法とする合同演算であることに注意してください。
サンプル4
入力
998244353 3 3 0 0 0 0 0 0 0 0 0
出力
2 3 1 0 0 0 1 3 0 0 0
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。