首先将地雷按照爆炸时间排序,然后用二重循环检查每个地理都能引爆哪些地雷,然后依次按照时间引爆,引爆的时候使用dfs递归进行引爆,引爆过的地理就再f中标记为false,累加实际爆炸的地雷数,超过m就输出当前地雷爆炸时间就可以了
python
def main():
小美来到了一个无限大的二维平面上,平面中有n个地雷,其中第i个地雷的坐标为(xi,yi),且第ti秒它就会爆炸,它的爆炸冲击会引爆和它曼哈顿距离在ki以内的所有其它地雷。小美现在想知道,至少需要多长时间,才能使得至少m个地雷爆炸。 (x1,y1) 和(x2,y2)的曼哈顿距离定义为:dist=∣x1−x2∣+∣y1−y2∣。
每个测试文件均包含多组测试数据。第一行输入一个整数T(1≤T≤100)代表数据组数,每组测试数据描述如下: 第一行输入两个整数n,m(1≤m≤n≤2000),表示平面中地雷的个数和至少需要m个地雷爆炸。 此后n行,第i行输入四个整数 xi,Yi,ti,ki(−109≤x,y≤109,0≤ti≤109,0≤ki≤2x109),描述第i个地雷。 除此之外,保证所有的n之和不超过3000。
在一行上输出一个整数,代表最少的等待时间
输入
1
3 3
0 0 0 1
1 0 1 1
2 2 3 10
输出
3