上一页 1 2 3 4 5 6 7 8 ··· 16 下一页
摘要: 查询游戏 原题做法是显然的,子段绝对值最大值可以转化为求出前缀和序列的最大值、最小值,然后两者作差即可。查询操作可以转化为询问前缀和序列中两个元素比大小。因为查询数 \(2n\),所以各扫一遍用擂台法求最大、最小值即可。 注意特判 Sub0 的 \(n = 1, 2\) 的情况: \(n=1\),问 阅读全文
posted @ 2025-10-07 12:39 KS_Fszha 阅读(21) 评论(0) 推荐(0)
摘要: 1. 算法介绍 1.1 维护普通队列 问题:维护一个队列,支持 pop_front 和 push_back,查询队列内所有元素的信息和。保证该信息具有结合律。不保证该信息具有可差分性。 平凡的做法是用线段树或 ST 表维护这种不可差分的信息,然后跑双指针,时间复杂度大部分情况下会比普通双指针多一个 阅读全文
posted @ 2025-10-02 10:46 KS_Fszha 阅读(166) 评论(0) 推荐(1)
摘要: Columns Swaps: 经典的图论问题,典中典了。 首先判掉无解,如果有一个数没有出现两次,则一定无解。在此基础上我们也可以得出一个转化:只需要保证序列 \(a_1\) 是一个排列,那么 \(a_2\) 自然也是一个排列了。 Sol.1 二分图最大权匹配 如果你科技学傻了,那么这就是一种最无脑 阅读全文
posted @ 2025-10-02 01:30 KS_Fszha 阅读(7) 评论(0) 推荐(0)
摘要: 序列:思路比较典的扫描线题。 一个经典 trick:对于涉及历史版本操作的题,新增代表“时间”的一个维度,刻画在 \(\bm{k + 1}\) 维空间上考虑。 对于此题,发现是查询序列历史版本大于等于 \(v\) 的值的个数,于是可以把它刻画在一个二维平面上,\(x\) 轴代表序列的维度,\(y\) 阅读全文
posted @ 2025-10-01 02:22 KS_Fszha 阅读(12) 评论(0) 推荐(0)
摘要: 最小生成树:板、典、原。 不难想到我们可以先找出原图的 MST,然后对于不在 MST 上的边,删掉它也不会影响答案。因此我们只需要考虑在 MST 上的边删掉有什么影响即可。 假设当前被删掉的边为 \(e\),两个端点为 \(u, v\),那么如果要使得 MST 继续保持连通,则添加的新边 \((a, 阅读全文
posted @ 2025-09-30 17:38 KS_Fszha 阅读(118) 评论(0) 推荐(0)
摘要: Buratsuta 3:典中典中典中典中典了属于是。 Sol.1 摩尔投票 首先维护区间出现次数大于等于 $\left \lfloor \dfrac{len}{k} \right \rfloor $ 次的数是摩尔投票板子,每次把 \(k\) 个不同的数相消即可。然后因为摩尔投票具有结合律,所以可以上 阅读全文
posted @ 2025-09-30 16:17 KS_Fszha 阅读(75) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2025-09-23 19:11 KS_Fszha 阅读(0) 评论(0) 推荐(0)
摘要: 十载峥嵘桀骜:感觉挺简单的,就是代码处理比较繁琐。 一个最简单的部分分是暴力模拟建图之后跑矩阵快速幂转移,时间复杂度 \(O(n^3\log t)\),随便拼点其他特殊性质就能 68pts 了。 考虑正解,结合树的直径的 DFS 求法,容易注意到在走完第一天后,第二天开始走的就是树的直径了。 同时又 阅读全文
posted @ 2025-09-23 18:48 KS_Fszha 阅读(11) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2025-09-20 21:13 KS_Fszha 阅读(1) 评论(0) 推荐(0)
摘要: Bracket Groups:赛时猜出来用 ACAM,结果没猜到结论,我是糖比。 首先判掉一些 corner,如果出现了 \(\texttt{()}\) 为单个字符串,则一定无解。 发现后面不太好做,所以可以套路地猜一猜答案上界,发现最多只需要分成两组。具体地,考虑往极端情况构造,弄出下面两种括号串 阅读全文
posted @ 2025-09-18 23:39 KS_Fszha 阅读(13) 评论(0) 推荐(0)
摘要: 上 Master 了。 阅读全文
posted @ 2025-09-16 18:03 KS_Fszha 阅读(61) 评论(0) 推荐(1)
摘要: 加法:感觉挺像超速检测风格的。 最大化最小值,显然可以二分最小值,判断最小值是否合法。这样我们求求出了每个数至少要覆盖的次数。 于是问题被转化为,\(m\) 个区间里选出最少个区间,判断使用的区间个数是否 \(\le k\)。 这个问题显然是一个最小区间覆盖的贪心,我们从左向右扫。假设当前扫到的下标 阅读全文
posted @ 2025-09-06 02:21 KS_Fszha 阅读(9) 评论(0) 推荐(0)
摘要: Mark and Professor Koro:比较简单的线段树上二分题。 先来记录一下区间 \([l,r]\) 内线段树二分的流程: 如果当前节点在 \([l, r]\) 内: 判断该区间是否有解: 若无解,直接返回 \(-1\)。 若有解,依次递归左右儿子节点,找到答案则返回。 否则判断左右儿子 阅读全文
posted @ 2025-09-06 00:37 KS_Fszha 阅读(15) 评论(0) 推荐(0)
摘要: Unjust Binary Life:简单题,感觉一大把 *1900 比这个难啊。 首先注意到靠这种方式生成的网格图有比较良好的性质,其他题有一些什么行与列相互独立的结论,但这题直接把 \((1,1)\) 到 \((x, y)\) 的路线画一下,你就能发现只有把第 \(1\sim x\) 行和第 \ 阅读全文
posted @ 2025-09-06 00:05 KS_Fszha 阅读(21) 评论(0) 推荐(0)
摘要: Exact Change:有点幽默的诈骗题。 观察一下性质,不难发现我们选择的 \(1,2\) 最多不超过 \(2\) 个,因为如果存在一个数选了 \(3\) 个 \(1,2\),那么我们可以直接用 \(1\) 个 \(3\) 或者 \(2\) 个 \(3\) 代替,这样一定更优。 接下来看似是一个 阅读全文
posted @ 2025-09-04 17:27 KS_Fszha 阅读(8) 评论(0) 推荐(0)
摘要: Infection Simulation:JOI 唯一好的地方就在于样例强的一批,过了样例基本上就把题过了。 观察题目,可以发现以下性质: 感染者存在的时刻一定构成一个区间。因为不可能出现感染者消失后再出现的情况。 当 \(x\) 逐渐变小的时候,被感染的人一定不会变少,感染的限制条件一定不会更紧, 阅读全文
posted @ 2025-09-03 00:26 KS_Fszha 阅读(7) 评论(0) 推荐(0)
摘要: Not Adding:一个 \(\gcd\) 的经典 trick。 对于求 \(\gcd\) 的题目,有一个经典 trick:枚举 \(\gcd\) 的值,然后枚举 \(\gcd\) 的每个倍数,计算每个倍数对 \(\gcd\) 的贡献。不难发现这个复杂度是调和级数的。 对于此题,题意可以转化为求最 阅读全文
posted @ 2025-08-31 15:35 KS_Fszha 阅读(17) 评论(0) 推荐(0)
摘要: MST in Modulo Graph:MST 好题。 一般这种完全图求 MST 的题,有两种思路: 优化建图,根据图的性质砍掉一些无用边。 使用 Boruvka 算法,搭配某些数据结构求每个节点的最小边。 本题中取模的条件用数据结构比较难维护,于是考虑优化建边的思路。 首先,值相同的点显然是可以先 阅读全文
posted @ 2025-08-31 02:33 KS_Fszha 阅读(14) 评论(0) 推荐(0)
摘要: Vasya and Arrays:弱智题。 打 CF Bingo 的时候被这题硬控 1min,还被 Xlw6friend 喷糖了,我才是奶龙!!!!!! 先考虑什么时候有解,不难发现如果将所有数都合并到一起,如果此时两个数组还不同就一定无解。 而对于有解的情况,相当于我们要将两个序列进行分段,使得两 阅读全文
posted @ 2025-08-30 14:27 KS_Fszha 阅读(9) 评论(0) 推荐(0)
摘要: Xor:有点牛的题。 Sol.1 普通 01 Trie 做法 应该是比较套路的一种做法了。首先考虑静态问题怎么做,先把值域里的所有数丢到 01 Trie 内,然后再将 \(A\) 序列里的数在 01 Trie 上查询,查询到的节点打上一个 Tag。最后 dfs 一遍,合并两个儿子就类似于最大子段和, 阅读全文
posted @ 2025-08-28 21:28 KS_Fszha 阅读(7) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 ··· 16 下一页