题意简述
一个鼠可以用一个三元组((t_i,x_i,y_i))表示,指这个鼠会在(t_i)时刻出现在((x_i,y_i))。
给定方格大小(n imes n(n le 1000)) 和 鼠的个数(m(m le 10000)),你现在有一个机器人,(0)时刻可以放在任意位置,每次可以走到上下左右,求最多能逮到鼠的个数。
简单口胡
这种题能蓝?
显然两点之间能否在(t)时间到达只与其距离有关。
设(i)鼠和(j)鼠之间的距离为(operatorname{dis}(i,j) = |x_i - x_j| + |y_i - y_j|)
如果(t_j - t_i (t_j > t_i) ge operatorname{dis}(i,j)),那么可以从(i o j),否则不行。
设(dp_i)为走到第(i)个鼠的最大答案,考虑转移,易得:
[dp_i = max_{1 le j < i} {{dp_j mid dis(i,j) le t_i - t_j}}
]
初始化(dp_i = 1),(mathcal{O}(m ^ 2))