【题目链接】
【算法】
动态规划
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 ",ans); return 0; }