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

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

好题。

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

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

我们要找某个 n×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 的实现

posted @   SkyMaths  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2023-11-14 CF/AT/LUOGU 日常做题合集
点击右上角即可分享
微信分享提示