摘要: exgcd 对于 $\mathrm{ax+by=(a,b)}$ 的方程必然有解 $\mathrm{(x,y)}$. $\mathrm{b=0}$ 时解为 $\mathrm{(1,0)}$. $\mathrm{b}$ 不等于 $\mathrm{0}$ 时考虑递归求解. 考虑求出 $\mathrm{(b 阅读全文
posted @ 2021-11-22 18:18 guangheli 阅读(56) 评论(0) 推荐(0)
摘要: 之前没有写过可撤销并查集,这里整理一下. 普通并查集是不支持撤销/断边操作的. 但是如果加边顺序是 $(1,2,3,4,5)$, 断边顺序是 $(5,4,3,2,1)$ 的话是可以维护的. 我们只需要用一个启发式合并的并查集加上栈来存储合并信息即可. 这样做可行,是因为始终是向上合并,并且删除时是从 阅读全文
posted @ 2021-10-31 13:22 guangheli 阅读(1081) 评论(0) 推荐(2)
摘要: CDQ 分治 在二维偏序问题中,可以利用排序干掉一维,并用树状数组维护另一维. 在三维偏序中,就需要利用 cdq 分治,干掉一维,并用树状数组+排序维护剩下两维. 例题 1. 树状数组模板题 本来,这道题应该用树状数组来完成,不过可以利用本题练习 $\mathrm{cdq}$ 分治. 操作序列的顺序 阅读全文
posted @ 2021-10-28 23:29 guangheli 阅读(71) 评论(0) 推荐(0)
摘要: 只需考虑 $2017$ 的状态. 令 $0$ 表示没开始,$1$ 表示有 $2$, $2$ 表示有 $20$..... 令 $\mathrm{f[i][sta]}$ 表示 $\mathrm{DP}$ 到 $\mathrm{i}$, 状态为 $\mathrm{sta}$ 的最小删除步数. 然后在进行状 阅读全文
posted @ 2021-10-22 20:53 guangheli 阅读(45) 评论(0) 推荐(0)
摘要: 比较好的线段树二分. 先考虑没有修改如何做: 对于一个 $\mathrm{y}$, 先找到第一个可以选的 $\mathrm{a[i]}$, 然后尽量选这个连续段. 显然,每当一个连续段停止时 $\mathrm{y}$ 的规模至少缩小了 $\mathrm{\frac{1}{2}}$. 所以,连续段的个 阅读全文
posted @ 2021-10-21 22:09 guangheli 阅读(25) 评论(0) 推荐(0)
摘要: Team Building 来源:CF1316E, 2300 直接按照 $\mathrm{a[i]}$ 排序,然后发现决策点是连续的(除非观众选择完) 然后就直接令 $\mathrm{f[i][j]}$ 表示考虑前 $\mathrm{i}$ 个,状态为 $\mathrm{j}$ 的情况. 判断的话就 阅读全文
posted @ 2021-10-20 06:35 guangheli 阅读(26) 评论(0) 推荐(0)
摘要: Least Cost Bracket Sequence 来源:CF3D 比较巧妙的堆+贪心题. 考虑括号序列的合法条件:任意前缀和不小于 0 且最终和为 0. 不妨先在每个括号位置强制选择 $)$, 然后如果合法就继续,不合法就从前面选右括号的位置改变决策. 改变主意的选择用优先队列去维护那个差值, 阅读全文
posted @ 2021-10-19 19:06 guangheli 阅读(71) 评论(0) 推荐(0)
摘要: 解决例如 $\mathrm{x}$ 或 $\mathrm{y}$ 其中一个需要成立的问题. 处理这种问题的时候对于每个点建立真和假. 然后就连一下边就行,特别注意这个边是有对称性的. 所以如果每次只连了一种边就要注意是否没考虑周全. 在输出答案的时候显然可以用是否在一个联通分量内来判合法性. 然后如 阅读全文
posted @ 2021-10-06 20:24 guangheli 阅读(26) 评论(0) 推荐(0)
摘要: 并不知道算不算动态DP. 对树进行树链剖分. 令 $\mathrm{f[x]}$ 表示 $\mathrm{x}$ 子树的答案. 令 $\mathrm{g[x]}$ 表示虚儿子答案之和. 然后有 $\mathrm{f[x]=min(v[x], g[x]+f[k])}$, 其中 $\mathrm{k}$ 阅读全文
posted @ 2021-09-30 21:08 guangheli 阅读(12) 评论(0) 推荐(0)
摘要: 圆方树 图的路径信息是很难处理的,因为有环. 如果我们需要处理的路径信息有特殊性质,可以考虑使用圆方树. 在圆方树中,定义方点和圆点. 其中,圆点就是原图中存在的点,编号为 $1$ ~ $\mathrm{n}$. 方点是我们加进去的,且一个点双联通分量对应一个方点. 这里给出具体建立圆点方点的代码: 阅读全文
posted @ 2021-09-27 10:35 guangheli 阅读(64) 评论(0) 推荐(0)