随笔分类 - 算法竞赛
里面是一些我认为是具有里程意义的题和题解,还有学新算法的心得笔记
摘要:11.29 在机房训练的最后一天 做了点儿彩色绿题,学了下 2-sat,打了会儿板子,把 D 盘收拾了一下,带走了所有东西。 默念:不考高精,不考大模拟……不考拉插…… 11.30 高二了,退无可退 6.30 起床,吃的饺子。 8:00 赶到考场。同学已经在了,西工大附中还是很有牌面的,拉了个大横幅
阅读全文
摘要:A [NOIP2020] 字符串匹配 枚举循环节 \(AB\),找到最多的循环节,剩下的一定包含在 \(C\)。然后可以发现的是 \(F(C)=F((AB)^kC),k>1\),那么就只用考虑 \(C\) 和 \(ABC\) 的贡献即可。复杂度 \(\mathcal{O}(N\log N)\)。 #
阅读全文
摘要:T1 镜的绮想 (mirror) 考虑维护中点 \(y\) 坐标数量,\(mid_y=(a_y+b_y)/2\),不过不用除。枚举所有相同 \(x\) 坐标点对即可。 #include<bits/stdc++.h> using namespace std; constexpr int N = 5e3
阅读全文
摘要:T1 选取字符串 warning❗:本题解 前缀 含量过高。 挺典的 kmp。考虑到题目中的串都是一个串的前缀,那么所选出来的串,他们的前缀一定是最短的那个串。不妨直接枚举每一个前缀,也就是枚举每一个串,看他们是否可以作为前缀出现,hash即可,复杂度 \(\mathcal{O}(N^2)\)。换个
阅读全文
摘要:T1 送信卒 使用 \(bfs\) 记录走到 \(tx,ty\) 的路径的横边和竖边的数量,然后取 \(\max\)。这里取 \(\max\) 的原因是,找到的路径必须是最短路,当 \(k\) 取的小的时候竖边就会变多,所以这条路径就不一定是最短路了。 #include<bits/stdc++.h>
阅读全文
摘要:T1 星际联邦 菠萝算法。不过简化版。考虑从后往前遍历,如果当前的电 的联通块大小为 \(1\) 的话,就把他和前缀最大值或者是前缀最小值连边。如果大于 \(1\),那就将联通块里的最小权点和前缀最大值连边即可。 #include<bits/stdc++.h> using namespace std
阅读全文
摘要:基础暴力分 300pts 🤡 T1 图书管理 枚举每个左端点,维护一个中位数指针和一个桶,每次 push 进来两个数: 两个数都大于当前中位数:中位数增大 两个数都小于当前中位数:中位数减小 两个数一大一小:中位数不变 极限数据可以卡到 \(\mathcal{O}(N^3)\)。 #include
阅读全文
摘要:[THUPC 2024 决赛] 转化 tarjan + DAG DP + 拓扑排序 挺 NB 的一道题 先按照题目说的连边,然后下意识弄个 tarjan。然后根据题意很好发现有以下性质: 如果一个转化方法向自己的 scc 里连的边大于 1 条时,这个 scc 里的所有物品一定为无限多。 如果一个转化
阅读全文
摘要:A [PA2021] Od deski do deski DP 挺显然的,但我推错了……。 \[\begin{split} dp_{i+1,j,1}&+=\sum(dp_{i,j,1}+dp_{i,j,0}) \times j\\ dp_{i+1,j+1,0}&+=\sum dp_{i,j,1}\t
阅读全文
摘要:A [USACO22DEC] Breakdown P 首先 \(N\le300\) \(k\le8\) 看样子复杂度是个 3 次的东西。一些套路的东西比如删边改加边不说了。这个 \(K\le8\) 很有讲究。 首先,不妨折半一下,算出从 1 经过一半条边到 \(u\) 的最短路径和 \(u\) 到
阅读全文
摘要:T1 莓良心 又是这毛病,场上怎么也想不到正解,然后看了题解恍然大悟。还是太菜。🐷 大概就是,贪心地,找到所有区间最小的 \(L\) 和最大的 \(R\),那么所有的点都可以被放置到 \(L\) 和 \(R\) 这两个点上。 那就好办了,将所有的 \(l\) 和 \(r\) 排序后讨论,分两种情况
阅读全文
摘要:T1 不相邻集合 服了,考场上拉一泡权值线段树,硬是没调过来。然后一下考就知道是哪的问题了,服了~ 维护两个东西:一是以 \(x\) 为右端点的最长可重集的长度,二是以 \(y\) 为右端点的最长可重集长度。两者一加再减一就是答案。然后考场上愣是想不到。这玩意用权值线段树很好维护,考虑到因为是以 \
阅读全文
摘要:T1 出了个大阴间题(repair) #include<bits/stdc++.h> using namespace std; #define ll long long #define lb(x) ((x) & (-x)) constexpr int N = (1 << 19) + 1, M = 1
阅读全文
摘要:T1 自然数 手玩数据可以知道,对于 \(012、01、0\) 这样的每次删去后面数的序列的 \(\text{mex}\) 值是单调不降的。并且每次删去前面一个数 \(val\) 的时候,产生影响的区间只是那些只有一个 \(val\) 的序列,影响是如果该区间的 \(\text{mex}>val\)
阅读全文
摘要:
[学习笔记] Splay & Treap 平衡树 - 数据结构 Splay 树 又名伸展树,一种平衡二叉查找树,通过 \(\text{Splay}\) 操作不断把节点旋到根节点来维护整颗树的平衡。 说人话,很玄学的玩意,复杂度是单 log 级别的。为啥是单 log,科学的解释请移步 OI-WIKI。
阅读全文
[学习笔记] Splay & Treap 平衡树 - 数据结构 Splay 树 又名伸展树,一种平衡二叉查找树,通过 \(\text{Splay}\) 操作不断把节点旋到根节点来维护整颗树的平衡。 说人话,很玄学的玩意,复杂度是单 log 级别的。为啥是单 log,科学的解释请移步 OI-WIKI。
阅读全文
摘要:[题解] Permutation 解析 一眼 DP 或者 组合。 70pts 场上推的DP 对于 \((4,2,2)\),先把所有序列枚举出来: \[\begin{split} 1\ \ \ 2\\ 1\ \ \ 3\\ 1\ \ \ 4\\ --\\ 2\ \ \ 3\\ 2\ \ \ 4\\ 3
阅读全文

浙公网安备 33010602011771号