您的位置:首页 > 其它

2017.10.25 打鼹鼠 思考记录

2017-10-25 14:21 302 查看
挺直白的dp

离散的是移动的过程,因为经过一番移动一定是为了出现在某个地点

所以直接m^2枚举,类似lis的转移即可

码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int f[10005],i,j,ans,n,m;
struct la
{
int t,x,y;
}a[10005];
bool cmp(la a,la b)
{
return a.t<b.t;
}
int main()
{
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
scanf("%d%d%d",&a[i].t,&a[i].x,&a[i].y);
sort(a+1,a+1+n,cmp);
a[0].t=-9999;
for(i=1;i<=m;i++)
{
for(j=0;j<i;j++)
{
if(f[j]+1>f[i]&&abs(a[i].x-a[j].x)+abs(a[i].y-a[j].y)<=a[i].t-a[j].t)
{
f[i]=f[j]+1;
}
}
ans=max(ans,f[i]);
}
printf("%d",ans);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: