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);
}
离散的是移动的过程,因为经过一番移动一定是为了出现在某个地点
所以直接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);
}
相关文章推荐
- 天天记录 - Andorid Invalidate 引发的思考
- 2017.4.16 阶乘之和 思考记录
- 2017.9.1 公路修建问题 思考记录
- 2017.4.23 一元三次方程求解 思考记录
- 2017.5.7 换教室 思考记录
- 2017.7.30 玩具装箱 思考记录
- AIX上静默安装WAS8.5.5.x的记录及思考
- 2017.9.23 Count on a tree 思考记录
- 2017.8.7 GT考试 思考记录
- 2017.9.30 物流运输 思考记录
- 2017.3.17 激光炸弹 思考记录
- 2017.10.1 蚯蚓 思考记录
- 2017.8.16 喵星球上的点名 思考记录
- 实习面试的一个记录及思考
- [生而为人-思考] Knowledge Cooking 分享会记录 -1
- Impala实践之五:一次系统任务堵塞记录 + 思考
- 2017.4.5 假期的宿舍 思考记录
- 聊天记录——关于怀疑,思考,验证的进一步讨论
- 2017.4.20 hanoi双塔问题 思考记录
- 2017.5.6 表达式的值 思考记录