码迷,mamicode.com
首页 > 其他好文 > 详细

BZOJ1207: [HNOI2004]打鼹鼠

时间:2017-09-19 22:51:38      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:targe   algorithm   题解   lin   ret   ext   string   log   blank   

【传送门:BZOJ1207


简要题意:

  有一个n*n的矩阵,给出m个点,每个点都在固定的位置,固定的时刻出现,点按照出现的时刻递增给出,保证同一时刻同一位置只可能出现一个点。一开始一个人可以在矩阵的任意位置出现,每秒钟可以走四个方向(上下左右),也可以停顿。求出最多能走过的所有点(当点出现时才算走过)


题解:

  DP,因为点有时刻出现,所以我们定义f[i]表示必须走过i点的能走过的点数


参考代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
using namespace std;
struct node
{
    int x,y,t;
}a[11000];
int f[11000];
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d%d",&a[i].t,&a[i].x,&a[i].y);
    }
    f[1]=1; 
    for(int i=2;i<=m;i++)
    {
        f[i]=1;
        for(int j=i-1;j>=1;j--)
        {
            if((a[i].t-a[j].t)>=(abs(a[i].x-a[j].x)+abs(a[i].y-a[j].y)))
            {
                f[i]=max(f[i],f[j]+1);
            }
        }
    }
    int ans=0;
    for(int i=1;i<=m;i++) ans=max(f[i],ans);
    printf("%d\n",ans);
    return 0;
}

 

 

 

BZOJ1207: [HNOI2004]打鼹鼠

标签:targe   algorithm   题解   lin   ret   ext   string   log   blank   

原文地址:http://www.cnblogs.com/Never-mind/p/7554293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!