P2285 [HNOI2004]打鼹鼠

题意简述

一个鼠可以用一个三元组\((t_i,x_i,y_i)\)表示,指这个鼠会在\(t_i\)时刻出现在\((x_i,y_i)\)
给定方格大小\(n \times 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 \to 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)\)

posted @ 2020-11-15 09:29  luyiming123  阅读(58)  评论(0编辑  收藏  举报