atcoder#ABC276H. [ABC276Ex] Construct a Matrix

[ABC276Ex] Construct a Matrix

题目描述

以下の条件を満たす N N N N 列の行列 X X が存在するかどうかを判定し、存在する場合は 1 1 つ示してください。( X X の上から i i 行目、左から j j 列目の要素を xi,j x_{i,j} とします)

  • すべての i,j(1  i,j  N) i,j(1\ \leq\ i,j\ \leq\ N) に対し、xi,j  { 0,1,2 } x_{i,j}\ \in\ \{\ 0,1,2\ \}
  • i=1,2,,Q i=1,2,\ldots,Q それぞれに対し次の条件が成立する。
    • $ P\ =\ \prod_{a_i\ \leq\ j\ \leq\ b_i}\ \prod_{c_i\ \leq\ k\ \leq\ d_i}\ x_{j,k} $ とする。この時、P P 3 3 で割った余りは ei e_i に等しい。

输入格式

入力は以下の形式で標準入力から与えられる。

N N Q Q a1 a_1 b1 b_1 c1 c_1 d1 d_1 e1 e_1 \vdots aQ a_Q bQ b_Q cQ c_Q dQ d_Q eQ e_Q

输出格式

条件を満たす X X が存在しないならば No と出力せよ。

条件を満たす X X が存在するならば 1 1 行目に Yes と出力し、2 2 行目以降に以下の形式で X X の一例を出力せよ。

x1,1 x_{1,1} x1,2 x_{1,2} \ldots x1,N x_{1,N} x2,1 x_{2,1} x2,2 x_{2,2} \ldots x2,N x_{2,N} \vdots xN,1 x_{N,1} xN,2 x_{N,2} \ldots xN,N x_{N,N}

条件を満たす X X が複数存在する場合、どれを出力しても良い。

题目大意

给定 N,Q N, Q 以及 Q Q 条限制,存在 N×N N \times N 0,1,2 0, 1, 2 矩阵(即矩阵中只能有 0,1,2 0, 1, 2 ),每条限制包含 a,b,c,d,e a, b, c, d, e ,表示 [a,b] [a, b] [c,d] [c, d] 列的子矩阵(或者说左上角为 (a,c) (a, c) 右下角为 b,d b, d 的子矩阵)所有元素之积模 3 3 后等于 e e ,你需要构造一个满足这 Q Q 条限制的 N×N N \times N 矩阵。无解输出 No,反之输出 Yes 并输出矩阵。存在 SPJ。

2 3
1 1 1 2 0
1 2 2 2 1
2 2 1 2 2
Yes
0 2
1 2
4 4
1 4 1 4 0
1 4 1 4 1
1 4 1 4 2
1 4 1 4 0
No

提示

制約

  • 1  N,Q  2000 1\ \leq\ N,Q\ \leq\ 2000
  • 1  ai  bi  N 1\ \leq\ a_i\ \leq\ b_i\ \leq\ N
  • 1  ci  di  N 1\ \leq\ c_i\ \leq\ d_i\ \leq\ N
  • ei  {0,1,2 } e_i\ \in\ \{0,1,2\ \}
  • 入力はすべて整数

Sample Explanation 1

例えば i=2 i=2 に対し、$ P\ =\ \prod_{a_2\ \leq\ j\ \leq\ b_2}\ \prod_{c_2\ \leq\ k\ \leq\ d_2}\ x_{j,k}=\ \prod_{1\ \leq\ j\ \leq\ 2}\ \prod_{2\ \leq\ k\ \leq\ 2}\ x_{j,k}=x_{1,2}\ \times\ x_{2,2} $ です。 この出力例において x1,2=2, x2,2=2 x_{1,2}=2,\ x_{2,2}=2 なので P=2 × 2 = 4 P=2\ \times\ 2\ =\ 4 であり、これを 3 3 で割った余りは e2=1 e_2=1 に等しいです。 i=1,3 i=1,3 に対しても同様に条件を満たすことを確認できます。