問題一覧 > 教育的問題

No.2446 完全列

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 16
作問者 : 👑 p-adic / テスター : 👑 AngrySadEight
1 ProblemId : 9631 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-08-30 09:55:39

問題文

入力に 33 個の正整数 L,M,NL, M, N と、整数係数 L×ML \times M 行列 AA と整数係数 M×NM \times N 行列 BB が与えられます。

 

(A,B)(A,B) が良い組であるとは、任意の実数係数 MM 次元縦ベクトル xx に対して以下の 22 条件が同値であるということです:

  1. AxAx が零ベクトルである。
  2. x=Byx = By を満たす実数係数 NN 次元縦ベクトル yy が存在する。

 

(A,B)(A,B) が良い組か否かを判定してください。

背景

左から AA を掛ける操作が定める線形写像 RMRL\mathbb{R}^M \to \mathbb{R}^Lgg、左からBB を掛ける操作が定める線形写像 RNRM\mathbb{R}^N \to \mathbb{R}^Mff と置きます。ホモロジー代数という分野においては、(A,B)(A,B) が良い組であるということを、線形写像の列

RNfRMgRL\displaystyle \mathbb{R}^N \stackrel{f}{\to} \mathbb{R}^M \stackrel{g}{\to} \mathbb{R}^L

が完全であると表現したり、完全列であると表現したりします。完全列という概念は代数の加群論や幾何などで多用されますし、圏論でも広く扱われていて近代数学における基本的な道具の1つです。

入力

以下、行列 CC の列数以下の正整数 ii と行数以下の正整数 jj に対し、Ci,jC_{i,j}CC(i,j)(i,j) 成分を表します。

入力は以下の形式で標準入力から 1+L+M1 + L + M 行で与えられます。

  • 11 行目に L,M,NL, M, N が半角空白区切りで与えられます。
  • LL 以下の各正整数 ii に対し、1+i1 + i 行目に MM 以下の各正整数 jj に対する Ai,jA_{i,j}jj の小さい順に半角空白区切りで与えられます。
  • MM 以下の各正整数 jj に対し、1+L+j1 + L + j 行目に NN 以下の各正整数 kk に対する Bj,kB_{j,k}kk の小さい順に半角空白区切りで与えられます。
LL MM NN
A1,1A_{1,1} \cdots A1,MA_{1,M}
\vdots
AL,1A_{L,1} \cdots AL,MA_{L,M}
B1,1B_{1,1} \cdots B1,NB_{1,N}
\vdots
BM,1B_{M,1} \cdots BM,NB_{M,N}

制約

入力は以下の制約を満たします:

  • L,M,NL, M , N1L,M,N1 \leq L, M, N かつ LM,MN15LM, MN \leq 15 を満たす整数
  • A,BA , B の各成分 aa6a6-6 \leq a \leq 6 を満たす整数

出力

(A,B)(A,B) が良い組である場合はYesと、良い組でない場合はNoと出力してください。

最後に改行してください。

サンプル

サンプル1
入力
1 1 1
-2
3
出力
No

A=(2)A = (-2) かつ B=(3)B = (3) です。実数係数 11 次元縦ベクトル xx(1)(1) と定めると、Ax=(21)=(2)Ax = (-2 \cdot 1) = (-2) は零ベクトルではありませんが、実数係数 L=1L = 1 次元縦ベクトル yy(31)(3^{-1}) と定めると x=Byx = By が成り立ちます。

サンプル2
入力
1 1 1
0
0
出力
No

A=(0)A = (0) かつ B=(0)B = (0) です。実数係数 11 次元縦ベクトル xx(1)(1) と定めると、Ax=(01)=(0)Ax = (0 \cdot 1) = (0) は零ベクトルですが、x=Byx = By を満たす実数係数 L=1L = 1 次元縦ベクトル yy は存在しません。

サンプル3
入力
1 2 1
1 0
0
1
出力
Yes

A=(10)B=(01)\displaystyle \begin{array}{rcl} \displaystyle A &\displaystyle = &\displaystyle \left( \begin{array}{cc} 1 & 0 \end{array} \right) \\ \displaystyle B &\displaystyle = &\displaystyle \left( \begin{array}{c} 0 \\ 1 \end{array} \right) \\ \end{array}

です。xx を実数係数 22 次元縦ベクトル xx とし、実数 x0,x1x_0, x_1 を用いて

x=(x0x1)\displaystyle x = \left( \begin{array}{c} x_0 \\ x_1 \end{array} \right) \\

と置きます。Ax=(1x0+0x1)=(x0)Ax = (1 \cdot x_0 + 0 \cdot x_1) = (x_0) より、AxAx が零ベクトルである必要十分条件は x0=0x_0 = 0 です。

x0=0x_0 = 0 ならば、実数係数 11 次元縦ベクトル yy(x1)(x_1) と定めると x=Byx = By となります。逆に x=Byx = By を満たす実数係数 11 次元縦ベクトル yy が存在するならば、実数 y0y_0 を用いて y=(y0)y = (y_0) と置くと

(x0x1)=x=By=(01)(y0)=(0y0)\displaystyle \left( \begin{array}{c} x_0 \\ x_1 \end{array} \right) = x = By = \left( \begin{array}{c} 0 \\ 1 \end{array} \right) (y_0) = \left( \begin{array}{c} 0 \\ y_0 \end{array} \right)

となるので、第 11 成分を比較することで x0=0x_0 = 0 であることが分かります。以上より、x0=0x_0 = 0 であることと x=Byx = By を満たす実数係数 11 次元縦ベクトル yy が存在することは同値です。すなわち (A,B)(A,B) は良い組です。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。