随笔分类 - 数据结构
摘要:* 思路:$dp_i$表示到第$i$个格子的最大得分,仔细思考后发现$f_i$只能从他之前一段区间内的最大$f_i$转移过来,且随着区域的后移不断改变,滑动窗口维护再二分答案就好了。 *代码实现: 滑动窗口的活动范围:$max$($d-len$,1)$\to$$d+len$ 滑动窗口的移动:当最大值
阅读全文
摘要:应该是九月份最后一篇了,这段时间比较高产,国庆勉强能休2天,不用写国庆作业是我不敢想象的快乐(⊙v⊙),楼下书桌里卷子能有1.5cm,肉眼可见的知识的厚度 回归正题,扫描线和正常线段树的差别就在于我维护的是什么,我怎么维护 扫描线和它的名字一样,一条平行于x轴的直线,从下往上扫过n个矩形,划分成多个
阅读全文
摘要:*题意:2个操作,1:[l,r]升序排序,2:[l,r]降序排序,最后输出序列 *线段树维护:[l,r]区间的字母是什么(必须完全覆盖),这样我们求字母个数的时候就等于(r-l+1) *和普通线段树的区别: 1.建树的pushup:当左区间和右区间都是同一个字母,当前区间也是同一个字母 il int
阅读全文
摘要:*洛谷传送 学校集训的第二天不知不觉写了道紫题(〃'▽'〃)(〃'▽'〃)(〃'▽'〃) 对于操作1和3,赤裸裸的线段树板子。单点修改和区间求和复杂度都没有什么问题,关键就在取模。对一个数取模,假如一段区间最大值都比这个模数小,那无论怎么改,其值都不会变,有了这个性质,我们可以去掉许多不必要的操作,
阅读全文
摘要:*传送 对于一个$n \times m$的矩形,我们只要对每一行求滑动窗口,当前位置的最大价值就是他上一行的滑动窗口(点击查看解释)+当前位置的价值。因为当前位置左上T个位置,会被他左边T个位置的点更新到,所以我们只需要算一边就好。 代码如下: 1 #include <iostream> 2 #in
阅读全文
摘要:*传送 **单调队列的模板题(做很多题的前置准备) 本题我们维护一个从大到小/从小到大的单调队列即可。拿最大值来举例:对于新加进来的数,如果比队尾小我们就加进来,否则为了维护单调性我们从队尾弹出比当前值小的值。不难证明这些弹出的值不会是任何一个滑动窗口的答案。对于窗口的限定长度,我们只需要每次判断队
阅读全文
摘要:题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上$x$ 2.求出某区间每一个数的和 输入格式 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含3或4个整数,表
阅读全文
摘要:记录一个变量$mid$,我们知道中位数是大小处于中间位置的数,所以建立两个堆,一个大根堆,一个小根堆,大根堆存≤ $mid$的数,小根堆存>$mid$的数。所以我们每次向堆中加入元素时,就通过比较和$mid$的大小关系,选择加入大根堆或者小根堆,但我们在输出答案前需要对$mid$进行调整。如果大根堆
阅读全文
摘要:题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某一个数加上 x 求出某区间每一个数的和 输入格式 第一行包含两个正整数 n,m,分别表示该数列数字的个数和操作的总个数。 第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i项的初始值。 接下来 m 行每行包含 3 个整数,
阅读全文
摘要:Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input 测试输入包含若干测
阅读全文

浙公网安备 33010602011771号