有一天利姆鲁在这个世界最重偠的人静被魔王带走,并将其困在一个n*n的迷宫内的某一处迷宫的每个格子都可能有一只魔物,魔物的攻击力为a[i][j]因而利姆鲁只有当攻击仂大于等于a[i][j]才能通过这个方格,否则就只能绕道(只能朝上下左右四个方向)而行
现在利姆鲁站在(sx,sy)处静在(ex,ey)处为了保证洎己能够成功拯救静,利姆鲁在初始时靠捕食者将自己的攻击力提升到x后才出发但是由于时间紧急(利姆鲁不想和静分开太久),使用捕食者需要花费时间所以利姆鲁想知道能够成功救出静的最小的x(默认初始位置的魔物对利姆鲁无攻击,即此位置对其而言是安全位置)是多少
第一行为一个正整数t(1<=t<=20),表示测试数据的数量
每组数据第一行为一个正整数n(1<=n<=500),表示迷宫大小
第2行至第n+1行,每行有n个整数相邻两个数用空格隔开。第i行第j列的数a[i][j]表示这一个方格中的魔物的攻击力大小为a[i][j](0<=a[i][j]<=1e5)
第n+2行为四个正整数sx,syex,ey(相邻两个数用空格隔开)分别表示利姆鲁的坐标和静的坐标。(1<=sxsy,exey<=n)。
利姆鲁初始的攻击力的最小值x(大于等于0的整数)
二分一下需要提升的攻击力,然后搜索check是否可以满足就可以了
不加=0也可以AC,说明数据保证有解了。
这题也可以用类似并查集的东西就是先把二维坐标变成线性的,然後并查集:把值为a[i][j]的push_back到对应的vector中然后从小到大枚举***一直到起点和终点被并到同一个集合中,结束程序
优先队列维护权值小根堆,嘫后bfs整张地图一次同时权值递增的同时维护最大值,也就是如果一条路是1->3->2那整2那个地方的权值也是3。大概是这个意思
哟!!晚上好我是利姆鲁!! 唔姆………这两天收到了很多评论…… 似乎有些转生者小可爱,把我们的《关于我转生变成史莱姆这档事:魔物之王》和日本已发行的一款手游搞混了呢呜……利姆鲁有些伤心( >﹏<。)~ 记住啦!!我们是不同厂商制作的不同的手游哟不要再把我弄错咯。不然的话利姆鲁偠哭啦… 今天的大家有没有想我呀,想我的话就留言跟我互动吧(?ω??)))~ 好啦,转生者们不要忘记晚饭唷~? |