m^2真能过。。。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<cmath> #define maxn 10050 using namespace std; int n,m,t[maxn],x[maxn],y[maxn],f[maxn],ans=0; int dis(int a,int b) { return abs(x[a]-x[b])+abs(y[a]-y[b]); } int main() { scanf("%d%d",&n,&m); for (int i=1;i<=m;i++) scanf("%d%d%d",&t[i],&x[i],&y[i]); for (int i=1;i<=m;i++) { f[i]=1; for (int j=1;j<i;j++) { if (dis(i,j)<=t[i]-t[j]) f[i]=max(f[i],f[j]+1); } ans=max(ans,f[i]); } printf("%d\n",ans); return 0; }