AT_arc181_c [ARC181C] Row and Column Order

题目描述

给定 $ (1,2,\dots,N) $ 的两个排列 $ P=(P_1,P_2,\dots,P_N),\ Q=(Q_1,Q_2,\dots,Q_N) $。 请在 $ N $ 行 $ N $ 列的网格的每个格子中填入字符 `0` 或 `1`,使得以下所有条件均成立: - 设第 $ i $ 行的格子按 $ 1,2,\dots,N $ 列的顺序连接成字符串 $ S_i $,则有 $ S_{P_1} < S_{P_2} < \dots < S_{P_N} $(按字典序)。 - 设第 $ i $ 列的格子按 $ 1,2,\dots,N $ 行的顺序连接成字符串 $ T_i $,则有 $ T_{Q_1} < T_{Q_2} < \dots < T_{Q_N} $(按字典序)。 可以证明,无论 $ P,Q $ 如何,至少存在一种满足所有条件的填法。 字典序 $ X < Y $ 的定义如下:对于字符串 $ X=X_1X_2\dots X_{|X|} $ 和 $ Y=Y_1Y_2\dots Y_{|Y|} $,**$ X < Y $ 按字典序成立**,当且仅当满足以下两条之一。这里 $ |X|,\ |Y| $ 分别表示 $ X,\ Y $ 的长度。 1. $ |X| < |Y| $ 且 $ X_1X_2\ldots X_{|X|} = Y_1Y_2\ldots Y_{|X|} $。 2. 存在整数 $ 1 \leq i \leq \min\lbrace |X|, |Y| \rbrace $,使得以下两点都成立: - $ X_1X_2\ldots X_{i-1} = Y_1Y_2\ldots Y_{i-1} $ - $ X_i $ 小于 $ Y_i $。

输入格式

输入通过标准输入给出,格式如下: > $ N $ $ P_1 $ $ P_2 $ $ \dots $ $ P_N $ $ Q_1 $ $ Q_2 $ $ \dots $ $ Q_N $

输出格式

请输出一种满足条件的填法。令 $ A_{ij} $ 表示第 $ i $ 行第 $ j $ 列的字符,输出格式如下: > $ A_{11}A_{12}\dots A_{1N} $ > $ \vdots $ > $ A_{N1}A_{N2}\dots A_{NN} $ 如果存在多种满足条件的填法,输出任意一种均可。

说明/提示

### 数据范围 - $ 2 \leq N \leq 500 $ - $ P,Q $ 是 $ (1,2,\dots,N) $ 的排列 - 输入均为整数 ### 样例解释 1 对于本样例,$ S_1 = $`001`,$ S_2 = $`101`,$ S_3 = $`110`,$ T_1 = $`011`,$ T_2 = $`001`,$ T_3 = $`110`。因此 $ S_1 < S_2 < S_3 $ 且 $ T_2 < T_1 < T_3 $,满足条件。 由 ChatGPT 4.1 翻译