04 2024 档案
摘要:P1111 修复公路 这是用连通块的思想来实现并查集,初始个点,他们对应都在自己的联通块里,记为f[x]=x。 对于已经在联通块里的点,我们返回它所在的连通块即可,即int find(int x) {return f[x]==x?x:find(f[x]);}。 我们用记作连通块的
阅读全文
摘要:堆 堆分为插入,查询,删除3个操作,虽然我们通常用优先队列来实现堆的功能,但是手写堆还是需要会的。 P3378 【模板】堆 最基本的二叉堆,也就是用一个二叉树来模拟的,其中通过一定的单调性来排列,其中堆顶为单调性最高的点位。 类似于现端倪树一般的,我们父节点的左儿子记为now<<1,右儿子为(now
阅读全文
摘要:先占个坑位 multiset的使用 CF D. Inaccurate Subsequence Search 这道题用到了插入、查找和删除三个功能。
阅读全文
摘要:CF C. Tree Cutting 建树的一道比较经典题目。 点击查看代码 #include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<map> #include<cstdlib> #includ
阅读全文
摘要:”如果一个选手比你小还比你强,那你就该退役了“————单调队列原理 单调队列多用于滑动窗口问题,即区间最优值的问题,与优先队列和线段树的时间复杂度相比,有着高贵的时间复杂度。 区间最大(小)值 区间最值是单调队列的一个经典应用。例如给出一段序列 1 2 3 4
阅读全文