塔子哥有一些神奇的镜子,这些镜子能够吸收光芒,并在一定时间后对光芒进行散射。
塔子哥的镜子分为一级镜和二级镜,一级镜的散射速度比较快,1ms就可以将光芒向上下左右四个方向散射过去,而二级镜则需要2ms。
塔子哥有一些神奇的镜子,能够吸收光芒并在一定时间后散射。镜子分为一级镜和二级镜,一级镜散射光芒需1毫秒,而二级镜需2毫秒。塔子哥将这些镜子放在一个二维矩阵中,并给定光源镜子的坐标。输入包括矩阵的行列数、光源坐标以及每个位置的镜子等级(0为墙体,1为一级镜,2为二级镜)。输出为所有镜子最早吸收到光芒的时间,若有镜子无法吸收到光芒则输出-1。
目标是找到所有镜子接收到光芒的最早时间。因此可以想到单源最短路算法:dijkstra
首先,我们需要创建一个二维数组 dis
来存储每个镜子接收到光芒的时间,初始值设为一个较大的数。同时,我们需要一个二维数组 bk
来标记每个镜子是否已经接收到光芒,初始值设为 False
。