bzoj1207 [HNOI2004]打鼹鼠
一道比较简单的DP
距离够则转移
1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<string> 5 #include<cstring> 6 #include<cmath> 7 #include<algorithm> 8 #include<ctime> 9 #include<queue> 10 #include<stack> 11 #include<map> 12 #include<set> 13 using namespace std; 14 int n,m,t[10010],x[10010],y[10010],hh[10010]; 15 int jue(const int &x) 16 { 17 return x<0?-x:x; 18 } 19 int dis(const int &q,const int &w,const int &e,const int &r) 20 { 21 return jue(q-e)+jue(w-r); 22 } 23 int main() 24 { 25 scanf("%d%d",&n,&m); 26 for(int i=1;i<=m;i++) 27 { 28 scanf("%d%d%d",&t[i],&x[i],&y[i]); 29 hh[i]=1; 30 } 31 for(int i=1;i<=m;i++) 32 for(int j=1;j<i;j++) 33 if(t[i]-t[j]>=dis(x[i],y[i],x[j],y[j]))hh[i]=max(hh[i],hh[j]+1); 34 int ans=0; 35 for(int i=1;i<=m;i++)ans=max(ans,hh[i]); 36 printf("%d",ans); 37 return 0; 38 }