题目大意 某个时间会在某个坐标出现一只鼹鼠,求最多能打多少只。 解题思路 不用讲了,直接上暴力dp,f[i][j]打到第i只鼹鼠用了j时间最多能打多少只。 code #include<set> #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> #define LL long long #define fo(i,j,k) for(int i=j;i<=k;i++) #define fd(i,j,k) for(int i=j;i>=k;i--) using namespace std; int const maxm=10000; int n,m,t[maxm+10],x[maxm+10],y[maxm+10],f[maxm+10]; int main(){ freopen("d.in","r",stdin); freopen("d.out","w",stdout); scanf("%d%d",&n,&m); fo(i,1,m)scanf("%d%d%d",&t[i],&x[i],&y[i]); fo(i,1,m){ f[i]=1; fo(j,1,i-1) if(t[j]+abs(x[i]-x[j])+abs(y[i]-y[j])<=t[i])f[i]=max(f[i],f[j]+1); } int ans=0; fo(i,1,m)ans=max(ans,f[i]); printf("%d",ans); return 0; }