bzoj#P2165. 大楼
大楼
题目描述
xz 是一个旅游爱好者,这次他来到了一座新的城市。城市中央有一幢高耸入云的大楼。这幢楼到底有多少层呢?据说和非负整数的个数是一样多的。
xz 想爬上这座大楼来观赏新城市的全景。这幢大楼的楼层从下至上用从小到大的非负整数编号。
每层楼有 个房间,用 到 的正整数编号。楼层之间用电梯连接,电梯只能上行,不能下行或者同层移动。(下楼一般自行解决)
电梯用 的形式给出,表示对于任意正整数 ,有第 层的房间 到第 层的房间 有一部电梯。电梯只能从起点开往终点,不能中途停留。
xz 想要观赏城市全景,至少需要登上第 层楼,即最终需要到达的楼层数 。由于乘坐电梯要缴纳高额的费用,而如果花销太大回家就没法报账了,xz 希望乘坐电梯的次数最少。现在 xz 在第 层的 号房间,你需要求出这个最少的乘坐次数。
输入格式
第一行包含一个正整数 ,表示数据的组数。
接下来的数据分为 个部分。
每个部分第一行包含两个正整数 和 ,意义见题目描述。
接下来 行,每行包含 个非负整数。这 行中,第 行第 个数为 ,如果 非零,则表示有电梯 。同一行各个数之间均用一个空格隔开。
输出格式
对于每组数据,输出一行一个正整数,最少的乘坐次数。
样例输入
2
6 147
0 1 0 50 0 0
0 0 1 0 0 0
20 0 0 0 0 0
0 0 0 0 1 50
0 0 0 8 0 0
0 0 0 0 0 3
6 152
0 1 0 50 0 0
0 0 1 0 0 0
20 0 0 0 0 0
0 0 0 0 1 50
0 0 0 8 0 0
0 0 0 0 0 3
样例输出
9
10
样例说明
第一组数据中,使用电梯的顺序为 $1\rightarrow 2\rightarrow 3\rightarrow 1\rightarrow 2\rightarrow 3\rightarrow 1\rightarrow 4\rightarrow 6\rightarrow 6$。
第二组数据中,使用电梯的顺序为 $1\rightarrow 2\rightarrow 3\rightarrow 1\rightarrow 2\rightarrow 3\rightarrow 1\rightarrow 4\rightarrow 5\rightarrow 4\rightarrow 6$。
第二组数据最后到达了 层,但是没有更短的路径使得恰好到达 层,因此答案为 。
数据规模与约定
有如下几类具有特点的数据:
- 有 的数据所有的 ;
- 有 的数据 ;
- 有 的数据对于满足 的整数 和 ,若 ,则有 ;
- 有 的数据所有的 。
以上各类数据均不包含其他类数据。
对于所有数据 ,,;对于满足 的整数 和 ,有 。数据保证能够到达 层或更高的楼层。