【题目链接】
【算法】
动态规划
f[i]表示上一次打了第i只鼹鼠,所能打死的最多的鼹鼠数量
【代码】
#include<bits/stdc++.h>
using namespace std;
#define MAXM 10010
int i,j,n,m,ans;
int t[MAXM],x[MAXM],y[MAXM],f[MAXM];
int main() {
scanf("%d%d",&n,&m);
for (i = 1; i <= m; i++) scanf("%d%d%d",&t[i],&x[i],&y[i]);
for (i = 1; i <= m; i++) {
f[i] = 1;
for (j = i - 1; j >= 1; j--) {
if (abs(x[i] - x[j]) + abs(y[i] - y[j]) <= t[i] - t[j])
f[i] = max(f[i],f[j]+1);
}
}
for (i = 1; i <= m; i++) ans = max(ans,f[i]);
printf("%d\n",ans);
return 0;
}