U29123.bsa走迷宫

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

本题原为复仇者联盟排位赛#5 T5.

复仇者_bsa接受了一个挑战,只要走出一个迷宫,就可以获得一只蒟蒻的账号!但是当他进入迷宫内,傻眼了:这迷宫复杂至极,一眼望不到尽头。还好有场外援助cjdst,他细心地发现bsa所在的迷宫分成很多的小块,里面有一个个小房间:

有些块是比较标准的,相当于一个 n×mn\times m 的矩形,而且和标准迷宫差不多,bsa只能上下左右移动至附近的一格,但通过每个小房间的所需时间不同.

而有些块是不规则的,相当于一个有向图,经过相邻两个房间所需的时间长短不一,一个房间可能有非常多个出口,但也可能一个出口都没有,而且还不能保证如果能从 AA 房间到达 BB 房间,BB 房间就一定能返回 AA 房间.

现在,复仇者_bsa收到了他所在的这一块的信息,请你帮助他求出通过这一整块的最短时间.

输入格式

第一行一个整数 kk,表示bsa所在块的种类.

k=1k=1,则该块是标准的矩形迷宫.
第二行两个正整数 n,mn,m,表示矩形迷宫的长和宽.
3n+23\sim n+2 行,每行 mm 个正整数,表示迷宫对应房间的通过所需时间.
n+3n+3 行两个正整数 x,yx,y,表示复仇者_bsa所在位置.出口在右下角.

k=2k=2,则该块是不规则迷宫.
第二行两个正整数 n,mn,m,表示共有 nn 个房间,mm 个出口,复仇者_bsa的位置是在 11 号房间,该块的出口在 nn 号房间.
3m+23\sim m+2 行,每行 33 个正整数 A,B,CA,B,C,表示 AA 号房间有一个出口通向 BB 号房间,所需 CC 的时间.

输出格式

一个整数,表示bsa通过该块的最短时间,若不能通过,输出-1.

输入输出样例

  • 输入#1

    1
    3 4
    1 1 4 5 
    1 2 3 4 
    5 4 3 2 
    1 1

    输出#1

    12
  • 输入#2

    2
    4 6
    1 2 2 
    2 3 2 
    2 4 1 
    1 3 5 
    3 4 3 
    1 4 4 
    

    输出#2

    3

说明/提示

对于 100%100\% 的测试点,1k21\le k\le2.
k=1k=1 时,1n,m1031\le n,m\le10^31xm,1yn1\le x\le m,1\le y\le n,保证每个房间通过所需时间不超过 10310^3.
k=2k=2 时,1n105,1m3×1051\le n\le10^5,1\le m\le3\times10^5,保证从一个房间至相连的另一个房间所需时间不超过 10410^4.

样例#1解释

一种可行的办法如下:

样例#2解释


按照红线走,所耗时间最短.

提示:可以参考走迷宫3,使用优先队列代替队列进行广搜.

首页