自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 7.26 模拟赛总结 [计数dp] [数数]

7:40 开题看 T1 发现又是数数?约束似乎比较多,T2 看起来比较可做,T3 应该是什么神奇计数dp,T4 一眼不太可做推 T1,想到 “区间加” 这种操作其实很难在线性 dp 里维护,很多后效性,很快想到了在差分数组上拆成 +1 -1 的操作,然后 dp 状态里记录前缀 ,以为会了,直接开写了发现样例没过,仔细手玩后发现题没看清,操作是有先后顺序的,(1,2)(2,2) 与 (2,2)(1,2) 不是同种方案!以为补个阶乘就行了,发现这样会多算,因为 (2,2)(2,2) 还是只有一种。

2024-07-27 16:49:41 419

原创 7.24 模拟赛总结 [dp 专场] + tarjan

7:40 开题看 T1 ,妈呀,一上来就数数?盯了几分钟后发现会了,不就是 LCS 计数嘛继续看,T2 看上去很恶心,线段覆盖,感觉可能是贪心什么的再看 T3,先想了个n2的式子,再一看哎 max 肯定有决策单调性啊,而且决策还有区间限制,那刚好套个之前模拟赛的技巧,放到线段树上做,秒了?胡完之后看 T4 ,推箱子,感觉是什么神秘不可做题8:05 开始码了,发现 T1 还得套个小容斥,8:20 过样例了接下来决定先写 T3,8:30 先交了个n2,上决策单调性分治到 8:55 调过交了。

2024-07-25 22:03:00 588

原创 珂朵莉树 ODT

容器后,其指代的值仍能访问到 (指针访问) ,但不能再进行任何与 原。的思想维护连续段,再用其它数据结构维护查询操作,以实现正解的复杂度。与该段相交的,由于这样的区间最多只有两个,每次推平最多删两段。上面 三种情况的讨论一种也不能少!否则 RE 套餐送上。意为 “可变的”,方便我们在遍历迭代器时可以直接。所以均摊复杂度正确,不依赖于数据随机生成。完全被包含的,删掉就没了,而总段数是。为什么说它是一个暴力数据结构,观察。正因为是暴力,所以能做的操作十分多。,这是因为如果反过来,操作时,复杂度是严格。

2024-07-24 15:33:59 859

原创 树套树 初步

树套树,顾名思义是将如 线段树、树状数组、平衡树 等树形数据结构结合起来,以实现更复杂的信息的维护。

2024-07-24 15:33:33 731

原创 CF / At 记录

先转化:注意到对路径权值的限制较多,尝试放宽限制,容易想到可以转化为 在路径上任选一条边不计贡献,任选一条边。直接 spfa 会 TLE,考虑拓扑排序,有环直接可以,否则是 DAG,可以 dp。,除了那些必须要填的字符以外,剩下的字符只关注数量就行,只需计算。总高度已知,可以得到 奇操作/偶操作 的关系,希望二者尽可能接近。但往右移一点,对后面的贡献会更远。不用写区间赋值,可以直接赋值到后缀,这么显然是正确的。,将图拆成四层,表示两种操作的使用情况,正常最短路。,直接枚举所有子集,计算贡献,预处理之。

2024-07-24 15:32:16 776

原创 7.23模拟赛总结 [数据结构优化dp] + [神奇建图]

然后 不断证明结论+修改一些毫无影响的细节,仍然和大样例不上,最后决定把题面重读一遍,知道看到了 “相对误差”,6,突然想到我学过高中物理。看 T1 ,起初以为和以前某道题有点像,子序列划分,注意到状态数很少,搜出来所有状态然后 dp,然后发现这个 T1 和那个毛关系没有。T4 一眼就不太可做。8:04 码完了,小样例顺利过掉,一测大样例发现小数点后面不对,想了想应该不会是精度问题,可能做法假了。回来看 T1,发现很 sb,每次肯定贪心选最优的后缀,至于选 m 的限制,填满一段后再贪心往前选就行。

2024-07-23 22:37:14 1007

原创 7.20 模拟赛总结 [邻项交换] + [决策单调性]

只放题解喽。

2024-07-23 21:08:22 595

原创 集训 Day 3 总结 虚树 + dfs tree + 基环树

虚树,顾名思义是 只关注原树上的某些,在保留原树祖孙关系的前提下建出的一棵边数、点数大大减少的树适用于优化某些在整棵树上进行dpdfs等操作通常是题目中出现多次询问,每次给出树上的一些关键点,同时保证∑关键点数≤n,很大可能就是建出虚树来处理概括来说,虚树只进行两步操作和。

2024-07-13 10:16:44 1036

原创 集训 Day 2 模拟赛总结

1

2024-07-09 19:33:26 988

原创 集训总结 Day1 杂题选讲

杂题选讲。

2024-07-08 08:14:59 812

原创 网络流总结

从 EK 的实现上我们可以看出,每次执行整张图的 BFS ,却只对其中一条路径增广,效率很低。基于上面的讨论,我们求解最大流的方法就是在残留网络上不断寻找增广路后进行增广。为了避免出现增广过程中 交叉、流量重复增加的情况,首先对 整张图进行。这本质上是一种贪心的做法,由于反向边的存在,我们在进行一次。增大流量,因此最大流的求解就可以看作找增广路增广的过程。对于每条现存的增广路,我们都可以沿增广路从源点。上存在一条增广路,我们就可以沿增广路从。不是很懂,大概就是多条增广路的并。,在点集中存在两个特殊的点。

2024-04-26 21:34:04 1332

原创 [DP] [技巧] [性质] 模拟赛好题分享

影响的是从操作点开始向下的一个 “阶梯型” 的结构。是可以边做边维护的,那么复杂度就是状态数,即。中任意一个转来,但不再减去重叠部分,取。,为避免对后面状态的影响,从右往左枚举列。过来,但重叠部分多算了,所以考虑减去。的怪,直接单点打就 ok 啦,状态数。行上方进行单点操作的代价,转移过来。发现性质:对于同一列上,操作。覆盖到的点太多,当然是不如。显然最多进行一次,否则不优。那这个临界是多少呢?那么考虑以列为阶段进行。下面继续思考:如果操作。也就是说,对于高度大于。列式子,设阶梯的高为。

2023-11-14 16:48:37 56

原创 [概率][计数dp] 模拟赛好题分享

首先我们做一步小小的变形,观察到式子中两个组合数从意义上来说是可以交换的,考虑将 DP 状态中都为。可以发现一个性质:DP 的过程中一定要时时维护串串合法,因为补充的串和为。时,经过一次 “分裂” 可以变为 三个数,接下来在三个数中。发现,问题递归了,分裂出来的三个数在接下来的选择中 完全独立!我们发现,合法与否仅与前缀有关,考虑 DP 中只维护前缀。,一个合法串的充要条件是:任何一个前缀都大于等于。的方案数,也就是 每步乘上的 “权值”总方案数好求,只需要求合法的方案。无关,可以提前处理,令。

2023-11-12 16:36:39 46

原创 [线性规划] [性质] 模拟赛好题分享

对于操作,发现 “相邻” 这个字眼貌似是要考虑顺序,但细想:一个字符串中只要有。从题目中给出的 “相似” 定义,我们发现实际上要求的是。范围扩大,如上图求出的实际上是 黑色斜线直接的区域。尽可能的把答案取到右上边界的位置,发现要么有。横平竖直的图形,用线性规划解决,对于一个串。看做平面中的点 的技巧,这里我们也这么做。是一个这样的图形,那么我们的目的是找一个。所以直接求二者的交集,看是否为空来判断即可。观察到 最大的最小,考虑二分。的数目相同,而不管排列顺序。,就必然至少有一个位置的。

2023-11-09 18:53:49 53 1

原创 [性质] 模拟赛好题分享

其次要考虑转化为单点贡献,反着求,考虑一个点在怎样的子段中可以不被排序。发现:左侧的数都小于等于它,右侧都大于等于它。首先操作区间一定不交。

2023-11-09 17:27:59 35

原创 2023.11.9 模拟赛总结

节奏非常好,接着看 T2 ,首先发现操作的区间一定不交,然后猜想:对于一个子段,应该是那些本来就待在“自己位置上”的数会使这个子段的答案 -1 ,顺着这个思路,又推了一些比如相同的数如何处理的细节,树状数组可以维护在该子段内的位置。但考虑单点贡献的方向对了,所以还是要想的广一点,遇到非常难处理的点一定要反思是不是某个性质假了。11:00 ,决定看看能不能拿点 T3 的分,再次审完题觉得愈发神秘了,二元组。调了写细节,写完已经 10:40 ,发现大样例里并没有值域小的,gg。再想,列方程,发现可以解出来。

2023-11-09 17:27:16 37

原创 2023.11.8 模拟赛总结

再次证明,开题前 20 min 的审题真的很重要,需要审的应该是 简单好拿、正确性有保证的暴力,对整套题的暴力分有一个大概的掌握。总结一下,T1 还是应该快速过,先码暴力的策略没有问题,主要是漏情况导致心态有点不稳,拖时间了,所以打清晰的表很重要。,但不知道怎么想了想把这个排了,觉得后面的操作能补救会来,直接偏离正解方向。,就剩 25 min 了,心慌,但思路很清晰。9:20 码完,发现样例过不去,手推一下发现漏情况了,完了不会假了吧,慌的一批,果断去厕所。个的组合数相乘,加上后,调,成功过掉了几组样例。

2023-11-08 16:02:24 38

原创 [最短路] [斜率优化] 模拟赛好题分享

所有决策加入队列后,再转移。显然满足所求直线斜率单增,维护队头即可。划分阶段,在每个阶段内可以随便跑最短路,阶段间尝试转移。每个阶段做完后再跑一边 最短路,即可拿到 30pts。一种思路是分层图,但复杂度不行。式子非常朴素,尝试斜率优化。

2023-11-07 14:43:58 35

原创 [二次建图] [拆点] 模拟赛好题分享

题目信息很复杂,修改颜色可能会对之后的路径产生影响,但我们会发现一点:边数 = 颜色数。且进行操作 2,那么支付 2. 的代价显然是多了,因为第一次操作已经减少一条 颜色。的有向边会被 在拆点后的图上建两次,加上 1、2 操作本身要建的边,总边数为。由于是最短路,显然一条边只会经过一次,那么只需要知道对于一条边。对于一个点,它有几种颜色的出边,就拆成几个点,故总点数为。的花费有哪几种,建边后就可以直接跑最短路了。最朴素的做法,显然是对所有上面那种情况的。,这样的复杂度是不可接受的。,与其他原图上的点相连。

2023-11-06 19:45:57 36

原创 [斜率优化][性质DP] 模拟赛好题分享

但简单推推会发现:怎么搞都有后效性!当前填数必然会对后面的产生影响,而 前面所有数的状态 是不可能在 DP 里记录的。为了方便计算,我们先统计 所有不为零的位置 两两间的贡献,接下来每确定填一个数,就加上其与前后产生的总贡献。直接上斜率优化即可,注意初值 inf 的问题。,总贡献(这种前缀思想很重要),是可以。为最后一个连续段的结尾,最多逆序对。一般遇到这种情况时,我们就要考虑。推出这一点,我们就可以 DP 了,,除此以外还可能有新增的贡献。,所求值 和 常数作为。考虑邻项交换,交换后,

2023-11-06 12:55:41 31

原创 斜率优化 DP 总结

一般来说,斜率优化DP 的题目会比较复杂,给的信息比较多,需要抽象出 准确的转移式。发现若当前新加入的点与队尾的连线斜率小了,可以把队头出队,直到斜率单调。时,提前计算本次启动 对 后面所有任务费用的增量,直接加到。这就是 斜率优化 DP 的第一步,写成朴素的 DP 转移式,同样是 “一段一段” 的 DP,唯一需要注意的是决策上界。顾名思义,运用数形结合的思想,将 DP 中求解的。的直线,我们考虑找到使得 截距 最大的那个决策点。但本题有个不太好处理的点,机器启动的时间。

2023-11-06 11:46:02 74

原创 单调队列优化 DP

的状态转移方程,标清楚 决策 的上下界,然后依据 转移 的性质用 单调队列维护 决策集合 ,进而优化复杂度。,而 决策集合 是从左向右滑动的,这样会不会导致某些后面的有效决策被排除?那么基于 减少无用决策出发:当本层的高度最大时,只保留 最小的 长度即可。位置的决策 排除了在它后面的部分元素,现在它出队了,谁有能是最优呢?整体上看,转移时需要维护到两个信息:当前层的长度,上一层的长度。时,首先让部分决策出队,并从 set 中删除,不需要更改。这是第一步的转移,去除了有空板 / 空人的影响。

2023-11-06 10:11:51 280

原创 Dsu On Tree 总结

不妨在第一次 pre_dfs 时处理出 整棵树的 dfn 序,将轻子树往上合并时直接枚举 dfn ,更新 存储答案的 数据结构。依据 当前点 是其 父亲的重/轻儿子,决定是否回退:回退时需要回退所有,也包括当前重儿子。再 for 一遍所有轻子树的 vec ,加入 维护答案的数据结构 以及 当前点的 vec 中,同时统计答案。dfs 当前点的所有轻儿子,处理轻子树中的节点,每处理完一个轻子树,回退其在维护答案的数据结构中的影响。对于一个状态,显然只需保留最大的长度即可,那么这样的状态是不会漏最优值的。

2023-11-02 20:56:06 68

原创 2023.10.31 模拟赛总结

发现贪心的做法没什么优化空间,因为需要一位一位枚举处理进位,没法用 线段树 或者 莫队 一类的维护。想了想 T1 ,猜了几个性质,发现都不太正确,没办法,先写暴力。最后 40 min 啥都写不出来,推 T1 甚至想到了 折半搜索,但是发现倒着搜的过程没法维护状态,寄。T3 确实是 线段树优化 DP,但由于想到了贪心的策略导致没再往 DP 上想,也就没有了优化空间。接着看 T3,觉得可搞,首先想暴力,简单推一下发现用不着 DP,倒着贪心就行,正确性可以保证。

2023-11-02 11:26:52 29

原创 2023.10.30 模拟赛总结

8:00 开 T1,慢慢推性质发现有些边没用,留一棵最早的生成树就行,但对询问 区间 [l,r] 中的点在树上的具体位置的不好处理。加上一些回忆的环节,8:50 过掉了大样例,但跑 7s 多,不知道怎么脑子抽了,想在线段树上动态维护 LCA,复杂度直接飙。简单打表发现有周期,看一眼数据范围:暴力能拿 15,性质A暴力扫周期有 25,稳了开码。去看性质,发现性质分好拿多了,但可能会假,10:50 码完交了。T1 花了 2h,小慌,开 T2,貌似是道智慧题。先拿暴力和性质,暴搜好恶心,栈模拟细节好多,

2023-10-30 17:34:26 44

原创 2023.10.28 模拟赛总结

9:20 码完,测大样例过了,用题面里的样例发现不对,原来是对于单个。T2 很熟悉,顺利回忆起之前那种贪心的做法:考虑每条边的贡献,选小的即可。8:15 总体浏览一遍,感觉十分平和,T1 简单数学题,T2 感觉很熟悉,T3 一眼大魔你,T4 应该是数据结构维护一下然后树上数数。10:30 基本码完,留下了那个小细节,开始考虑怎么搞。首先是想到了各种树上染色的做法,一个儿子染一种颜色,后来发现这不就是。10:45 码完,一发过大样例,心想稳了,反复看了好几遍,交了。需要特判,改完就交了,9:30。

2023-10-28 16:32:29 46

原创 2023.10.25 模拟赛

8:40 开 T2,虽然对于儿子的限制是 “存在一个编号比它大的” 就行,有别于之前那道题,但想到数据范围偏小,想到加一维状态表示 “当前有多少个点没有编号比它大的儿子” ,简单推了一下发现转移可搞,直接开码了。如果这时候我写了暴力程序,只需要简简单单的拍一组 n=4 且 答案很小 的数据就能清晰地发现我漏掉的情况 —— 可是一直觉得是哪里的细节错了,盯着在思想上就有漏洞的代码死看;推一下 T1 有一个显然的贪心结论,好像每次选最大的就行,飞快的码完,过了大样例,8:20直接交了。的对拍,没什么问题。

2023-10-25 14:33:35 51

原创 [线段树性质][计数] SegmentTree 题解

首先我们会发现,只有 query 函数递归到叶子时,由于上面的 define,才可能导致 a 数组越界而 RE。那么问题很清晰了,直接在线段树上模拟这个过程,递归到叶子时如果发现这是一个 RE 叶子,根据左右情况累加到。需要注意的一点是:一个区间 如果左右端点都是 RE 叶子的话 会被重复算,容斥一下。( x 代表原数组中表示的下标 ) 是一个左儿子时,当且仅当。,那么 T 组数据全 AC 的概率就是。总数一定,要求的就是不合法的。的区间会访问到,共 x 个区间。打表发现,当 RE 叶子。

2023-10-23 20:04:01 49

原创 CSP-S 2023 游寄

蒟蒻的游寄

2023-10-23 09:29:04 148

原创 线性代数总结

目录壹 —— 矩阵矩阵的运算:加、减乘特殊矩阵除乘方矩阵的应用:简单的例子1:例 2 维护特殊的递推式子例 3 分块矩阵应用例 4 技巧:二维转一维 / 周期处理例 5 结合较复杂的 DP矩阵加速图上问题邻接矩阵的乘方技巧 1:拆点技巧 2:点边互换综合题 / bitset 优化矩乘技巧 3、4 :矩乘重定义 / 二进制预处理技巧 5 :阶段转移非严格从 i-1 到 i 情况的处理2. 线性空间 —— 线性基3.高斯消元壹 —— 矩阵“矩阵就是映射!!!”\qquad\qquad\qquad\qqua

2023-10-05 16:04:00 142

原创 国庆模拟赛总结

和学弟打的欢乐赛,T1_100 + T2_100 + T3_100 + T4_50 + T5_35 = rhk_5菜T1 , T2 过的很快,T3 为求稳先打的暴力和性质分,T4 也是先打的性质,最后看一眼 T5 发现十分的可做(思路很简单,但代码细节似乎很多)看一眼时间还剩 2h 多,遂开码但写完开始调一直过不了样例以及手造数据,反反复复调终于让自己差不多满意,但只剩 50 min最后看一眼 T3 想到了正解,飞快的码完后,担心FST还是拍了一下,但时间已经所剩无几又看了看 T4 发现还是没思路。

2023-10-04 09:35:56 112 1

原创 线段树总结

某些问题中,给出区间的总长度特别长,但实际上大部分节点都是无用的,因此只在操作时将需要用到的节点在线段树上建出来。但多个合并时整体空间仍要开到 (操作次数)*log(长度) ,因为合并过程中会有某些节点重复出现。的时间复杂度为 两棵子树的节点交 ,空间复杂度为 两棵子树节点并(画图理解)需要结合动态开点,因为合并时要保证两棵线段树结构一致,因此通常用在。类似于分块思想,将单点信息合并为整块处理,前提是答案具有单调性(拓展一点,线段树合并的过程中实际上还可以很方便地。,递归前判断一下左右儿子是否存在即可。

2023-09-19 19:03:47 32

原创 [星标] 集训 Day 14 模拟赛总结

看到 操作1 :区间修改 ,显然想到差分仔细分析 操作2 ,实际上也是基于操作序列的差分对于每个操作,先查询当前需要重复几次,然后进行 操作序列 / 答案序列 的差分修改即可由于 操作2 只会修改前面的操作,我们可以倒着枚举,实时更新差分数组的后缀和,省去树状数组的log。

2023-09-15 17:04:34 48 1

原创 模拟赛 —— 好题分享

相差不会太大,加上记忆化感性理解一下分出的两叉很快会汇合,同样状态不会太多。从 二进制下 最低位开始,每次计算这一位的贡献,然后递归到 下一位,即。右侧式子,个位的 1 对答案没有影响,直接减掉 1,化为偶数的情况。必定一奇一偶,然而到底是哪个并不确定,那么更改求和的顺序。,但这个操作对于奇偶数的修改是不同的,那么将奇偶分拎出来。这么看就可以单拎出个位的贡献了。为奇数时,搜索树只会单叉进入下一层;明确了方向我们来开始讨论,记。在个位上对答案的贡献为 1。个位上的贡献是好求的。

2023-09-12 21:00:07 61

原创 集训 Day 11 字符串算法总结

算法的优越性在于,通过巧妙的状态设计,充分利用前。向右移动最多一次,因此算法的总复杂度是线性的。的过程,一切优化的源头在于:如何用前。循环中只会向左移动,而对于每个。如此的复杂度当然是无法通过本题的。当跳跃的过程中找到第一个满足。,表示不重叠的前缀的最大长度。适用于多模式串与文本串进行匹配。前缀匹配(相同)的最大长度。数组,记录任意位置跳的次数。,只需额外定义一个指针。个位置的信息,用均摊。又构成了一个前后缀 )首先我们考虑忽略限制。,如何优雅地计数呢?一个浅显的想法是对于。,跳的次数即为前缀数量。

2023-08-10 20:52:13 55 1

原创 [折半搜索][随机化][分层图][曼哈顿距离] 集训 Day 13 模拟赛总结

问题在于代码能力不够,码农题写不出来,细节难以处理以及知识点的欠缺。

2023-07-23 10:10:15 45

原创 [二次建图/换根DP] 集训 Day 8 模拟赛总结

所以,套路题还需要思考其本质,才能灵活运用;以及,观察数据范围,明显是让全源最短路。另一方面,考虑最终的最优路径,也必定能被 起点、终点、以及若干存档点划分开。本题来说,解法一显然不行,路径长度最短并不代表一定最优,与体力值相互约束。,则能通过自我复制得到原串的 真子串长度必定为。正难则反,被若干真子串复制得到的字符串比较好求。种情况( 0/1 0/1 0/1 …T2 挂掉了— — —)— — — — 路径长度 + 体力值。,又感性理解到情况数不会太多,直接上。后,对左侧儿子无影响,右侧儿子的。

2023-07-16 07:16:10 60 1

原创 集训Day5&6&7图论总结

若以节点。

2023-07-12 17:51:08 82 1

原创 常用的一些板子

特殊构图容易被卡,只在特殊情况下使用 ( 存在负权边 , 判负权环 )时间复杂度为两棵子树的节点交 ,空间复杂度为 两棵子树节点并(画图理解)类似于分块思想,将单点信息合并为整块处理,前提是答案具有单调性(:使得任意一条边( x , y , z )都不存在满足。2.动态开点对空间要求很大, (操作次数)*(值域)的信息 与 所求值 比较,快速找到答案所在的。接下来在这个节点中递归,分别考虑答案在 左。: 贪心思想,用当前最短距离更新其它点。,递归前判断一下左右儿子是否存在即可。

2023-07-08 07:22:53 356

原创 点分治总结

那么结合其他数据结构或算法,高效的统计出任意两条链拼出的路径对答案的贡献,至此完成 1.加上了休息站的限制,而对于一条路径来说,拼成它的两条链的休息站情况。,那么经过重心的划分,剩余子树的最大节点数必定小于。给一棵树,每条边有权。的路径,基于树结构的性质,一定可以将其看作是由。:此时DFS的这棵子树里 到根距离为。:此时DFS的这棵子树前 到根距离为。:此时DFS的这棵子树里 到根距离为。:此时DFS的这棵子树里 到根距离为。:此时DFS的这棵子树前 到根距离为。:此时DFS的这棵子树前 到根距离为。

2023-06-01 21:35:52 56 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除