首页 > 其他分享 >UNR #8 Day2 难度查找 个人记录

UNR #8 Day2 难度查找 个人记录

时间:2024-11-14 16:45:32浏览次数:1  
标签:UNR Day2 小值 矩阵 查找 考虑 2k

个人记录,可能存在一些错误或者问题。

好题。

这题和元旦激光炮有一点像,都是考虑根据给定的矩阵大小关系,在不确定某个位置具体值的情况下,把一定大于/小于答案的位置挖掉

但是本题可以说是拓展了,因为它在确定的时候也递归成了一个子问题。

我们要找某个 \(n\times m\) 矩阵(满足从左上到右下单调递增)的第 \(k\) 小值,考虑递归成子问题,若我们把偶数行拿出来作为一个新的矩阵,发现它依然满足给出的限制,那么若我们求出了其第 \(k'\) 小值的轮廓,考虑用处,发现因为行与行之间的限制,这里的第 \(k'\) 小可能作为 \([2k', 2k' + m)\) 小中的任意一个。

那么我们考虑每次求出一个包含第 \(k\) 大的轮廓,并且用大根堆维护每次弹出最大值的过程,发现这是 \(O(n + m)\) 的,其实 nm 同阶,那么我们得到了一种操作次数 \(O(n)\) 的做法,但是这道题要求更加精细的实现。

  1. 可以用记忆化
  2. 考虑我们在弹出的时候若 \((i + 1, j)\) 和 \((i, j + 1)\) 都没弹出,\((i, j)\) 也不会弹出,所以可以用类似某种 dijkstra 的写法做,即“激活”(我也不知道我在说什么)。

没有优化 2 的实现
加了优化 2 的实现

标签:UNR,Day2,小值,矩阵,查找,考虑,2k
From: https://www.cnblogs.com/SkyMaths/p/18546371

相关文章

  • 整数二分查找 leetcode35. 搜索插入位置 leetcode704. 二分查找
    这两道题的本质是一样的,都是整数二分查找。题目给出的条件比较强,序列是严格单调递增的。但是我这个即使序列存在重复的元素也可以满足需求35.搜索插入位置classSolution{public:intsearchInsert(vector<int>&nums,inttarget){intsize=nums.size();......
  • 洛谷P11183 [ROIR 2018 Day2] 大数据处理
    涉及知识点:动态开点线段树,贪心前言很妙很感性直观的贪心,做完神清气爽。题意Link有一个长为\(2^k\)的序列,编号从\(0\)开始,你要在上面染色,每次只能染色\([k2^i,(k+1)2^i-1]\)的区间(\(0\leqi<k\)),问最少要染色多少次才能变成给定的目标序列。目标序列以形如\((x_1,y_1),(......
  • 旺仔水饺-冲刺日志 Day2
    作业所属课程https://edu.cnblogs.com/campus/fzu/SE2024作业要求https://edu.cnblogs.com/campus/fzu/SE2024/homework/13305团队名称旺仔水饺102201140黎曼102201138黄俊瑶102201127罗永辉102201130郑哲浩102202144傅钰102202147赖越1722090......
  • 代码随想录:二分查找
    代码随想录:二分查找二分法标志:数组顺序排列且无重复简单的二分法,写法是左闭右闭的写法,此种情况的left可以等于right,故while里有等号。classSolution{public:intsearch(vector<int>&nums,inttarget){intleft=0;intright=nums.size()-1;......
  • 二分查找(折半查找)函数与非函数写法代码介绍及其优缺点 C语言
    什么是二分查找?二分查找也叫折半查找 在有序的数组中查找目标的方法需要借助中间元素与目标值的比较来逐步缩小范围一直到找到目标元素或者不存在为止查找的步骤↓1确定左右端点的下标值(注:数组下标从0开始)2计算中间下标位置3比较中间下标位置的数组值与目标值的大......
  • Day2
    Day2当天站立式会议照片学生团队姓名学号昨天已完成的工作今天计划完成的工作工作中遇到的困难林涛(组长)3122004618完成登录模块开发修改管理员apinull杨森3122004629后台文件上传开发完成接收文件并保存如何保存的图片钟礼骏3122006504查询家长感......
  • 团队项目Scrum冲刺-day2
    一、每天举行站立式会议站立式会议照片一张昨天已完成的工作成员任务陈国金用户模块的部分接口开发凌枫登录页面陈卓恒管理题目页面的部分代码谭立业题目搜索页面的部分代码廖俊龙接口测试曾平凡前端页面测试曾俊涛题目模块的部分接口开发......
  • 二叉搜索树实现教程:用C++实现数据存储与查找
    文章目录1.二叉搜索树的概念2.二叉搜索树的性能分析3.二叉搜索树的插入4.二叉搜索树的查找5.二叉搜索树的删除6.⼆叉搜索树的实现代码7.⼆叉搜索树key和key/value使⽤场景7.1key搜索场景:7.2key/value搜索场景:7.3key/value⼆叉搜索树代码实现1.二叉搜索树......
  • Day2——探索
    站立式会议的目的是有效沟通项目的进度、问题、计划、调整。团队在冲刺的七天内,每天发布一篇随笔,共七篇:提供当天站立式会议照片一张。每个人的工作(有workitem的ID):站立式会议站立式会议照片一张昨天已完成的工作今天计划完成的工作工作中遇到的困难......
  • 【无标题】day2
    继承publicclassBextendA{`/*A类称为父类(基类,超类)。B称为子类(派生类)。*/`}特点:子类能继承父类的非私有成员变量(成员变量,成员方法)。继承后对象的创建:子类的对象是由子类、父类共同完成的。继承的好处:减少代码重复性。权限修饰符:用来限制类中的成员(成员变量、成员方......