[bzoj1207]打鼹鼠

奇妙的dp。。

f[i]:=打掉i的时候已经打掉了多少

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstdio>
 4 #include <cstring>
 5 #include <cstdlib>
 6 using namespace std;
 7 
 8 int n,m,t[10010],x[10010],y[10010],ans=1,f[10010];
 9 
10 int main(){
11     scanf("%d%d",&n,&m);
12     for(int i=0;i<m;i++)scanf("%d%d%d",&t[i],&x[i],&y[i]),f[i]=1;
13     for(int i=0;i<m;i++)for(int j=0;j<i;j++)ans=max(ans,(f[i]=max((abs(x[i]-x[j])+abs(y[i]-y[j])<=t[i]-t[j])*(f[j]+1),f[i])));
14     printf("%d\n",ans);
15 }
View Code

 

posted @ 2017-01-21 09:44  KingSann  阅读(78)  评论(0编辑  收藏  举报