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

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

这道题第一眼想用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;
}


http://www.kler.cn/a/597919.html

相关文章:

  • 自动驾驶背后的数学:多模态传感器融合的简单建模
  • python接口自动化pytest+request+allure
  • Python实现deepseek接口的调用
  • C语言入门教程100讲(13)其他运算符
  • 2025年了,5G还有三个新变化
  • QEMU 引导时分离内核和文件系统
  • Shell中sed的用法
  • 安防监控视频平台EasyNVR级联视频上云系统EasyNVS出现“Login error”报错的原因排查
  • 基于TCN-BiLSTM-Attention的序列数据预测(功率预测、故障诊断)模型及代码详解
  • 常⻅中间件漏洞--Tomcat
  • bootstrap 表格插件bootstrap table 的使用经验谈!
  • Rocky Linux 软件安装:Last metadata expiration check:
  • 某视频的解密下载
  • 潮流霓虹酸性渐变液体流体扭曲颗粒边缘模糊JPG背景图片设计素材 Organic Textures Gradients Collection
  • 1. 找不能被3、5和7整除的数并存入列表。
  • 深入理解Linux中的SCP命令:使用与原理
  • centos 7 部署ftp 基于匿名用户
  • Android 图片加载框架:Picasso vs Glide
  • LeetCode Hot 100 - 子串 | 560.和为K的子数组、239.滑动窗口最大值、76.最小覆盖子串
  • 算法设计:拒绝偷懒,追求卓越