【HNOI2004】 打鼹鼠

【题目链接】

             点击打开链接

【算法】

          动态规划

          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\n",ans);
        
        return 0;
    
}

 

posted @ 2018-05-05 22:23  evenbao  阅读(115)  评论(0)    收藏  举报