
队列
清泠,
慢慢成长的小白白,
展开
-
牛客OI周赛8-提高组 — 用水填坑
题目挺好的,不过自己不太会,用到优先队列的bfs,不错 传送门 解题思路: 给我们一个水池,我们想让里面的水最多,也就是慢慢找呗, 首先这个池子能存多少水(假设先是一圈墙),取决于这个墙的最低高度是多少,所以我们因此可以想到我们每次都是用最低的墙是进行搜索 首先我们利用贪心的思想,首先计算周围的墙(也就是最边上的墙),然后我们找高度最低的墙往里缩小(因此如果不找最小,如果水高于那个最小位置,那么水会溢出),所以从周围的最小值开始找起,如果找到比他高的,先暂时存入队列不用管,如果找到比他小的,那么证明这.原创 2020-05-27 09:54:04 · 243 阅读 · 0 评论 -
Codeforces Round #642 (Div. 3)
22分钟A了前三天,然后…然后就没然后了,这里补下DE题 传送门 D题解题思路: 这个题开始就是找规律…找… 正解是set或者优先队列,这里用优先队列写下 首先我们是从哪个区间大我们就往哪个区间的中间位置放数,所以我们就存储他的头和尾的坐标,一开始肯定是1,n 我们这里对优先队列排序,按照长度由长到短,如果长度相同那么看坐标小就排在前面(这里学了下优先队列的排序,与sort是反的) struct cmp{ bool operator()(PII x, PII y){ if (.原创 2020-05-16 00:03:37 · 195 阅读 · 0 评论 -
每日一题 — 2020 - 04 - 25
题目链接 这个题感觉以前做过类似的,不过忘记了,优先队列真是没想到,又学习到新知识了 解题思路: 这个题感觉主要是思维吧,主要是怎么处理这个最小值 首先想个简单了,只有一个数组,我们选出k个,选出最小值的最大 那么我们从大到小排序,那么第k个就是最小值中最大的 然后如果有2个数组,我们怎么处理(结构体) 首先第一个我们还是那么处理,不过到k的时候我们就会取值,然后我们删除前面一个值,那么当前...原创 2020-04-25 16:43:45 · 235 阅读 · 0 评论