当前位置: 首页 > news >正文

蓝桥杯备考:动态规划之最长上升子序列打鼹鼠

这道题第一眼想用BFS,但是初始位置不固定,要考虑的太多太多了

我们可以看到time是递增的,我们可以用最长递增子序列来做

一共是这么多个鼹鼠,按照时间排序,依次枚举每个鼹鼠,找出最长上升子序列,就是能打到的老鼠

如果距离小于等于时间差,就能连上

我们还是按动态规划最基本的做法

分析状态表示 f[i]表示以第i个鼹鼠结尾的最长子序列是多大

推导状态转移方程

接下来就按正常的最长上升子序列来做就行了,下面是代码

#include <iostream>
using namespace std;
const int N = 1e4+10;
int n,m;

int t[N],x[N],y[N];
int f[N];
bool check(int i,int j)
{
	return abs(t[i]-t[j])>= abs(x[i]-x[j]) * abs(y[i]-y[j]);
}
int main()
{
	cin >> n >> m;
	for(int i = 1;i<=m;i++)
	{
		cin >> t[i] >> x[i] >> y[i];
	}
	int ret = 0;
	for(int i = 1;i<=m;i++)
	{
		f[i] = 1;
		for(int j = 1;j<i;j++)
	 	{
	 		if(check(i,j))
	 		{
	 			f[i] = max(f[i],f[j]+1);
			 }
		 }
		 ret = max(ret,f[i]);
	}
	cout << ret << endl;
	
	return 0;
}

相关文章:

  • 数据结构的基本概念
  • 网络运维学习笔记(DeepSeek优化版) 024 HCIP-Datacom OSPF域内路由计算
  • 响应式CMS架构优化SEO与用户体验
  • vue3 组件篇 WaterMark
  • 23种设计模式-策略(Strategy)设计模式
  • 基于SpringBoot的“健身房管理系统”的设计与实现(源码+数据库+文档+PPT)
  • react ant design树穿梭框实现搜索并展开到子节点、同级节点选择及同时选择数量限制功能
  • 蓝桥杯备考-----》前缀和+哈希表之连续自然数和
  • javafx项目结构+代码规范
  • 西域平台商品详情接口开发指南(含代码示例)
  • Css布局-常规流笔记
  • LeetCode02.07.链表相交
  • AVI格式:经典视频格式的坚守与挑战
  • 在word中使用zotero添加参考文献并附带超链接
  • SpringBoot整合高德地图完成天气预报功能
  • 火山引擎云上实战:QwQ-32B 大模型快速部署
  • Python小练习 Vol.1:汉诺塔的移动(递归思维初体验)
  • 深度学习基础-----神经⽹络与深度学习((美)MichaelNielsen )
  • VMware三种网络模式对比总结
  • 基于大模型的肿瘤预测与全流程诊疗辅助系统技术文档
  • 装修设计师培训班/seo推广灰色词
  • 求职网站网页模板/百度大搜数据多少钱一条
  • wordpress 验证密码错误/网站建设优化收费
  • 推荐一下网站谢谢/seo综合查询怎么用
  • 创网站 灵感/蚁坊软件舆情监测系统
  • 摄影网站设计论文/推广排名seo