博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
「 Luogu P2285 」打鼹鼠
阅读量:5294 次
发布时间:2019-06-14

本文共 779 字,大约阅读时间需要 2 分钟。

解题思路

第一眼看上去觉得要设计一个三维的 DP,$dp[i][j][k]$ 表示在 $(i,j)$ 这个位置上 $k$ 时刻能够打死的最多的鼹鼠。

但是被数据范围卡死。完全开不开数组啊。

然后注意到题目中有句话说保证是按照时间递增序输入的。

想一下,某个鼹鼠能够被打死,是因为他之前被打死的鼹鼠走过来的。

所以只需要考虑每个鼹鼠之前的若干鼹鼠就可。只要两个鼹鼠的距离小于它们出现的时刻只差,那就可以扩展的到。

 

附上代码

#include 
#include
#include
using namespace std;const int maxn = 10003;int n, m, x[maxn], y[maxn], t[maxn], Ans = 1, dp[maxn];inline int ABS(int x) { return x>0 ? x : -x;}int main() { cin>>n>>m; for(int i=1; i<=m; i++) { cin>>t[i]>>x[i]>>y[i]; dp[i] = 1; for(int j=i-1; j>=1; j--) if(ABS(x[j]-x[i])+ABS(y[j]-y[i]) <= t[i]-t[j]) dp[i] = max(dp[j]+1, dp[i]), Ans = max(Ans, dp[i]); } printf("%d", Ans);}

 

转载于:https://www.cnblogs.com/bljfy/p/9581445.html

你可能感兴趣的文章
电脑的自带图标的显示
查看>>
globalization与全球化
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
关于在Idea 创建Maven项目时,无法在source文件下创建servlet文件问题解决!
查看>>
对 HTTP 304 的理解
查看>>
深入理解css中的margin属性
查看>>
C++ 删除字符串的两种实现方式
查看>>
电容选型
查看>>
ORA-01502: 索引'P_ABCD.PK_WEB_BASE'或这类索引的分区处于不可用状态
查看>>
Spring EL hello world实例
查看>>
百度地图API地理位置和坐标转换
查看>>
MyBatis学习总结(六)——调用存储过程
查看>>
code-代码平台服务器路径
查看>>
离线安装 Visual Studio Express 而不下载整个镜像文件的方法(转载)
查看>>
2014年国际数学家大会台历
查看>>
[数分提高]2014-2015-2第3教学周第1次课
查看>>
2017-2018-2偏微分方程复习题解析10
查看>>
Java抽象类和接口的比较
查看>>
web技术工具帖
查看>>
SpringBoot项目中常见的注解
查看>>