Loading

摘要: CF1603C Extreme Extension upd 2024.11.14 数论+dp 首先要思考的一定是怎么操作操作次数会最小。然后就会发现一种贪心策略,即让每次分裂出来的最前面的数尽可能大。 求它的所有非空子段的极端值之和不好直接求,但它等价于求每个位置可能的操作次数(可重)之和。(答案的 阅读全文
posted @ 2024-03-23 21:02 Fire_Raku 阅读(1) 评论(0) 推荐(0) 编辑
摘要: P5021 [NOIP2018 提高组] 赛道修建 upd 2024.11.14 求最大值最小,通常先从二分思考。 枚举完二分的值以后,也就限制了最小值的下届。我们要让满足下届的赛道尽可能多。 由于是树,解决这样的问题就有树上 dp 和贪心。 到底是哪一个?走 dp 的话,状态已经不好设计了,难以描 阅读全文
posted @ 2024-03-23 20:56 Fire_Raku 阅读(41) 评论(0) 推荐(0) 编辑
摘要: P3592 [POI2015] MYJ upd 2024.11.13 区间 dp 这题的思路没有特别明显。可以从答案的计算出发,既然要消费,不妨设 \([1,n]\) 的最小值位置在 \(p\),那么在这里消费的顾客是可知的。 这时候剩下有消费的顾客一定在 \([1,p-1]\) 和 \([p+1, 阅读全文
posted @ 2024-03-23 20:53 Fire_Raku 阅读(8) 评论(0) 推荐(0) 编辑
摘要: P4314 CPU 监控 这题是维护历史最大值模板。 先套线段树,考虑怎么维护标记。 我们发现普通的标记的维护遵循能合并就合并,但是这就会出现问题:假如一个标记还没有下传时就被修改(也就是减小),那就会导致子树的历史最大值不正确(变小)。 考虑先不合并同一个节点的标记,把它们看成一个操作序列。这里讲 阅读全文
posted @ 2024-03-23 20:51 Fire_Raku 阅读(15) 评论(0) 推荐(0) 编辑
摘要: BZOJ2908 又是nand 首先手玩需要计算的值,发现既不满足交换律也不满足结合律,不好维护。 对于位运算,常见的考虑分开每一位计算贡献,对于单独一位,计算较为简单。 既然计算的值只能按顺序计算,那我们只能考虑树剖(其他数据结构不好维护顺序)。给每一位建一棵线段树,在线段树上维护。 注意到 「树 阅读全文
posted @ 2024-03-23 20:48 Fire_Raku 阅读(9) 评论(0) 推荐(0) 编辑
摘要: P4198 楼房重建 求从 \((0,0)\) 往上看能看到多少栋没被挡住的楼房,带修改。 对于带修改的题目,我们需要快速维护,就需要用到数据结构。这时候通过直觉可以想到,问题是可以分为子问题然后合并得到的,所以我们考虑线段树。 观察到能被看到的楼房,从左到右斜率递增,即我们需要维护斜率递增的序列。 阅读全文
posted @ 2024-03-23 20:46 Fire_Raku 阅读(10) 评论(0) 推荐(0) 编辑
摘要: Sasha and Array 典题,但还是第一次见。 首先看到斐波那契数列,可以想到矩阵快速幂。 想到这一点之后,很大一部分都解决了。对于修改操作,实际上就是乘以一个矩阵。对于查询,就是矩阵加法。 考虑用线段树维护矩阵。首先区间和可以矩阵加法直接做。由于我们需要区间乘,需要考虑如何下传标记,然后发 阅读全文
posted @ 2024-03-23 20:45 Fire_Raku 阅读(4) 评论(0) 推荐(0) 编辑
摘要: P5648 Mivik的神力 upd 2024.11.13 卡常倍增 或 树状结构维护 统计类问题,一般思路是找到数据结构维护关键信息。 这题拆不了式子,但是如果可以注意到前缀最大值的单调性,这时候就有非常多的数据结构可以维护了。 单调性怎么用? 贡献是一段段区间的形式,暴力的倍增是首想。 如果将每 阅读全文
posted @ 2024-03-23 20:43 Fire_Raku 阅读(35) 评论(0) 推荐(0) 编辑
摘要: P8539 「Wdoi-2」来自地上的支援 移项维护特殊值。 这题思路还是挺简单的。 首先分析操作。发现操作序列一定是单调递增的,也就是每个数只会被选中连续几次,之后就不会再被选中了。 然后分析询问。我们发现要满足条件,\(x\) 显然是在 \([x, x+k-1]\) 被选中。 那么首先 \(x+ 阅读全文
posted @ 2024-03-23 20:41 Fire_Raku 阅读(10) 评论(0) 推荐(0) 编辑
摘要: P9746 「KDOI-06-S」合并序列 upd 2024.11.13 经典区间dp+预处理 只要是做了入门区间 dp 的人都应该看出来。 怎么优化呢?发现了转移时枚举了冗杂转移,原因是可达性 dp 的转移只需要找到一个合法转移即可。 怎么找到一个合法转移? 这时候可以试试预处理一些信息加速转移。 阅读全文
posted @ 2024-03-23 20:39 Fire_Raku 阅读(23) 评论(0) 推荐(0) 编辑
摘要: P10173 「OICon-02」maxiMINImax 首先观察所求的式子,我们可以很容易发现 \(\min_{[l_2,l_2]}>\max(\max_{[l_1,r_1]},\max_{[l_3,r_3]})\),否则贡献一定为 \(0\)。 此时如果要考虑枚举其中一个区间,我们肯定选择中间的 阅读全文
posted @ 2024-03-23 20:35 Fire_Raku 阅读(20) 评论(0) 推荐(0) 编辑
摘要: P9493 「SFCOI-3」进行一个列的排 upd 2024.11.13 性质+dp 题目实在难以入手,至少连手玩都困难。这时候适当放宽题目限制,方便观察,也容易发现一些必要条件。 这题中我们就先将长度限制去掉,通过手玩,进而发现了序列一定是下凸的。这就固定了序列的形式。 看到求排列方案数,可以想 阅读全文
posted @ 2024-03-23 20:27 Fire_Raku 阅读(5) 评论(0) 推荐(0) 编辑
摘要: P9871 [NOIP2023] 天天爱打卡 upd 2024.11.13 经典dp+线段树优化+离散化 可以看到求的是最大值,常用工具有 dp 和贪心。如果 dp 做的多的话应该可以看出这题就是个线性 dp(先忽略超大的数据范围)。 \(n\) 小的时候,可以直接以当前天数设状态,转移就是一段后缀 阅读全文
posted @ 2024-03-23 20:25 Fire_Raku 阅读(121) 评论(0) 推荐(0) 编辑
摘要: CF1615F LEGOndary Grandmaster 计数好题,转换条件+转化贡献+组合数 首先题目的操作没有什么好的性质,考虑一个经典的 trick,将奇数位置上的数字取反,于是题目的操作变成 \(01\rightarrow 10\) 或 \(10 \rightarrow 01\)。这个操作 阅读全文
posted @ 2024-03-23 20:23 Fire_Raku 阅读(8) 评论(0) 推荐(0) 编辑