atcoder#ARC159A. [ARC159A] Copy and Paste Graph

[ARC159A] Copy and Paste Graph

题目描述

N N N N 列の行列 A=(ai,j) A=(a_{i,j}) が与えられます。ここで、ai,j  {0,1} a_{i,j}\ \in\ \{0,1\} が成り立ちます。

また、以下のような有向グラフがあります。

  • 頂点数は NK NK で、各頂点には 1,2,,NK 1,2,\ldots,NK と番号が付けられている。
  • 辺は A A を縦 K K 行横 K K 列に並べて得られる NK NK NK NK 列の行列 X=(xi,j) X=(x_{i,j}) によって表される(入出力例1にて A, K A,\ K に対応する X X が示されている)。具体的には、xi,j=1 x_{i,j}=1 ならば頂点 i i から頂点 j j への有向辺が存在し、xi,j=0 x_{i,j}=0 ならば存在しない。

i=1,2,,Q i=1,2,\ldots,Q に対し、次の問題に答えてください。

  • 頂点 si s_i から頂点 ti t_i への経路の長さ(辺の本数)の最小値を求めよ。ただし、そのような経路が存在しない場合は代わりに -1 と出力せよ。

输入格式

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

N N K K a1,1 a_{1,1} \ldots a1,N a_{1,N} \vdots aN,1 a_{N,1} \ldots aN,N a_{N,N} Q Q s1 s_1 t1 t_1 \vdots sQ s_Q tQ t_Q

输出格式

Q Q 行出力せよ。x x 行目には、i=x i=x に対する問題の答えを出力せよ。

题目大意

给定 n×nn \times n0101 矩阵 AA

有向图 G=(V,E)G=(V,E)n×kn \times k 个点。

k2k^2AA 矩阵平铺得到一个 (n×k)×(n×k)(n \times k) \times (n \times k) 的矩阵 BB,表示图的边集。

iijj 列的项为 11,则代表从 iijj 有连边。

qq 次询问求两点最短路,不存在则输出 1-1

3 2
1 1 1
1 1 0
0 1 0
4
1 2
1 4
1 6
6 3
1
1
1
3
4 1000000000
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1
1 4000000000
-1

提示

制約

  • 1  N  100 1\ \leq\ N\ \leq\ 100
  • 1  K  109 1\ \leq\ K\ \leq\ 10^9
  • ai,j  {0,1} a_{i,j}\ \in\ \{0,1\}
  • 1  Q  100 1\ \leq\ Q\ \leq\ 100
  • 1  si,ti  NK 1\ \leq\ s_i,t_i\ \leq\ NK
  • si  ti s_i\ \neq\ t_i
  • 入力はすべて整数

Sample Explanation 1

この例において、辺を表す行列 X X は以下のようになります。 1 1 1 1 1 1 1 1 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 0 1 0 0 1 0

Sample Explanation 2

辺が 1 1 本も存在しません。