2026年8月17日
摘要:
T3 没有最大值大于其它之和的情况牌一定会被选完,所以只需要判断总和的奇偶即可。 T4 十年【】。 贪心还有问题,应该是每种颜色依次放最优。 T5 有一个细节:左端点转移到下一个的时候最小值应该按照这一次的最小端点再次计算,而不是按照这一次最右边的端点计算。 而且代码也太屎山了,远远没有正解简洁。
阅读全文
posted @ 2026-08-17 18:39
fish2012
阅读(2)
推荐(0)
2026年8月14日
摘要:
关于 DP 的技巧 0x01 状态与值域交换 DP 的状态可以和值域交换。 比如:dp[i][w]=v 表示选了前 \(i\) 个物品,背包容量为 \(w\) 的情况下可以装物品的最大价值为 \(v\)。 这就可以转换成 dp[i][v]=w 表示选了前 \(i\) 个物品,选的物品总价值为 \(v
阅读全文
posted @ 2026-08-14 20:51
fish2012
阅读(19)
推荐(0)
2026年8月13日
摘要:
二维数点 应用于问题中最主要是数矩形点数和求点被矩形覆盖次数。 比较明显的二维数点 问题是在一个二维的平面中,这时候很容易看出来需要二维数点,所以一般就会和一些算法/数据结构结合。 与二分结合:AT_abc233_h 不明显的二维数点 二维数点是在一定的范围中求点的数量/权值和,这个范围有时需要自己
阅读全文
posted @ 2026-08-13 18:35
fish2012
阅读(10)
推荐(0)
2026年7月22日
摘要:
莫队 用于处理一类区间查询问题,需要满足可以在极少的时间内从区间 \([L,R]\) 的答案转移出区间 \([L\pm 1,R\pm 1]\) 的答案。 莫队的操作: 现在有一个已知答案的区间 \([L,R]\),通过一个一个移动左右端点来找到下一个区间的答案。 但是这样的时间复杂度最坏是 \(O(
阅读全文
posted @ 2026-07-22 20:34
fish2012
阅读(8)
推荐(0)
2026年7月21日
摘要:
分块 分块是一种优雅的暴力。 分块就是暴力。 支持大部分的区间操作(包括线段树不能做的),但是复杂度比线段树的 \(O(N\log N)\) 更劣,时间复杂度 \(O(N\sqrt N)\)。 把一个长度为 \(N\) 的序列分成长度为 \(\sqrt N\) 的 \(\sqrt N\) 个块。 对
阅读全文
posted @ 2026-07-21 19:14
fish2012
阅读(6)
推荐(0)
2026年7月17日
摘要:
线段树优化建图 解决的情景:建图时,一个点 \(x\) 要对区间 \([L,R]\) 中的点连边,直接暴力连边时间会爆炸。 线段树可以把一个区间拆分成 \(\log N\) 个线段树上的区间,连边的时候对这些区间连边即可。 但是还需要解决:当区间 \([L,R]\) 向点 \(x\) 连边之后,区间
阅读全文
posted @ 2026-07-17 21:30
fish2012
阅读(13)
推荐(0)
2026年7月15日
摘要:
时间分配 题目 时间 T1 \(\texttt{20min}\) T2 \(\texttt{80min}\) T3 \(\texttt{60min}\) 题目 T1 什么阴,题面上怎么只给了 \(\texttt{1000ms}\),骇死我了。 就是一个平衡树维护序列的板子,直接就切完了。 T2 题目
阅读全文
posted @ 2026-07-15 21:37
fish2012
阅读(8)
推荐(0)
2026年7月14日
摘要:
处理的问题 依次操作,有增加,删除,对时间点询问几种操作的问题。 有时候删除有限制(如可撤销并查集),所以就不考虑删除,只考虑每一个增加操作存在的时间范围。 有时候问题中没有明说删除,比如最小mex生成树,而是需要不使用某些边。 可撤销并查集 并查集可以按秩合并,合并/查询单次时间复杂度 \(O(\
阅读全文
posted @ 2026-07-14 21:17
fish2012
阅读(10)
推荐(0)
2026年7月8日
摘要:
线段树合并,可持久化,分裂的总结,没有什么知识性的东西,只是根据自己的问题整理了一些注意事项。 线段树合并 注意事项 这时候空间就比较大了,不要一来就 #define int long long。 然后有一些卡空间的方法。 线段树合并时不要新开一个点,直接合并到其中的一棵树上去。 int merge
阅读全文
posted @ 2026-07-08 21:32
fish2012
阅读(10)
推荐(0)
2026年6月5日
摘要:
主要是总结一些问题和细节处理。 有向图 强联通分量缩点之后是【DAG】不是【树】,在缩点之后的图上干事情记得记忆化。 有向图 tarjan 在非树边时可以写:low[x]=min(low[x],dfn[y]) 也可以写 low[x]=min(low[x],low[y]),这里的 \(low\) 数组
阅读全文
posted @ 2026-06-05 20:36
fish2012
阅读(17)
推荐(0)