10 2023 档案
查漏补缺
摘要:一整天查漏补缺,把快忘了怎么敲的代码复习理解掌握。(个人觉得还是很重要的,自己很熟练的就没放上来) -std=c++14 #include<bits/stdc++.h> #define It set<int>::iterator using namespace std; int main(){//f
P9744 「KDOI-06-S」消除序列
摘要:题目传送门 这道题在比赛时先花了一个小时理解好题意才打了一个 分的 暴力。下午刚起床,有点困,还没进入状态,打得挺慢。 具体地,会发现操作实际上是在这个长度为 的序列找一个点 ,将 通过操作 全变 ,
P5309 [Ynoi2011] 初始化
摘要:题目传送门 本来不想写这道 卡肠题的,但还是写了。 分块+根号分治。 考虑对 的大小分类讨论: 若 ,很明显最多只会加 次,暴力加即可,用分块维护每个块内的 ,查询就直接散块加上整块即可。 若 \(
P9474 [yLOI2022] 长安幻世绘
摘要:题目意思: 需要在元素互不相同的数列 中选出一个长度为 的元素互不相邻的子列,使得子列的极差最小。 做法 我们知道,对于一组数列,我们只需知道它的最大值和最小值,就可以得到它的极差。那么我们可以将数字从小到大排序,固定最小值,寻找最优的最大值,当最小值和最大值的位置固定了,那
汉诺塔(河内塔)题解
摘要:汉诺塔(河内塔)题解 我们定义 为根据规则将 个圆盘从一根柱子移动到另一根柱子的最少移动步数,按照这样的定义,本道题的答案实际上就是 。 通过手动模拟,可得到 。同时显然有 ,即表示 个圆盘根本无需
约瑟夫问题及深入
摘要:问题大意: 从围成标有记号 到 个人开始,每隔一个删去一个人,直到最后只有一个人幸存下来。例如 的起始图形: 删除的顺序是: ,最后 幸存下来。 解决: 我们设对于有 个人的环,最终幸存者编
P3970 [TJOI2014] 上升子序列
摘要:题目 先将 离散化。 设 表示以数字 结尾的上升子序列数量。 则有 。 考虑用线段树实时维护 ,就可以 查询。 扫一遍整个序列,因为不能算重复,所以 \(ans
P8511 [Ynoi Easy Round 2021] TEST_68
摘要:题目传送门 看到异或最大值,根据套路不妨考虑 。 通过 找到异或值最大的点对 。那么除了 到 路径上的点之外,其他的点的答案就是 的异或值。 接下来考虑怎么算出这 到
P8512 [Ynoi Easy Round 2021] TEST_152
摘要:题目传送门 先考虑没有区间限制怎么做,即执行完所有操作在询问全局和。用 维护连续段,就是珂朵莉树,写个模板即可。 加上区间限制呢?先将询问按照 排序。又因为还要维护每个 ,就在颜色段上在记录加入时间。我们在时间维开个数据结构,简单的树状数组即可。时间复杂度 \(