摘要: tag:分块,二分 对操作序列分块。 对于一个块,先 \(O(n)\) 处理出当前每个点的真实值。由于一个块内最多只有 \(O(B)\) 个点会发生变化,所以可以按照指针关系将 \(O(n)\) 个点缩成 \(O(B)\) 个点,之后的操作就 \(O(B^2)\) 暴力操作。 对于一个询问,首先在预 阅读全文
posted @ 2021-06-25 09:07 oisdoaiu 阅读(37) 评论(0) 推荐(0) 编辑
摘要: tag:贪心,堆 可以发现一个状态的后继状态一定为 取 \(a_{mx+1}\) 取 \(a_{mx+1}\) 并丢掉 \(a_{mx}\) #include<bits/stdc++.h> using namespace std; template<typename T> inline void R 阅读全文
posted @ 2021-06-25 09:05 oisdoaiu 阅读(26) 评论(0) 推荐(0) 编辑
摘要: tag:平衡树,二分 最优策略中一个点一定只选一次,否则只需要选最后一次就行了。 在确定取的点集后,按 \(t\) 从小到大取最优。 考虑 \(n^2\) 暴力,\(s\) 最大的那个一定出现在所有方案中,否则用它替换第一个点一定更优。(这里只是说明最大的一定出现,不代表它一定是第一个) 设最大的 阅读全文
posted @ 2021-06-25 09:04 oisdoaiu 阅读(25) 评论(0) 推荐(0) 编辑
摘要: tag:区间dp 和AT3859 [AGC020E] Encoding Subsets一模一样。。(这个黑的还好写一点,因为是计数) 设 \(f(s)\) 为 \(s\) 的答案,\(g(s)\) 为将 \(s\) 表示成k(s') 的答案。 求 \(f\) 时枚举一个前缀,用 \(g(s_{[0, 阅读全文
posted @ 2021-06-25 09:02 oisdoaiu 阅读(39) 评论(0) 推荐(0) 编辑
摘要: tag:树形dp \(n^3\) 暴力,设 \(f_{i,j}\) 表示 \(i\) 的关键点为 \(j\)。 转移时枚举 \(x\) 的关键点和 \(son\) 的关键点,转移条件即为满足关键点的性质(关键点为所有源点中离它最近的) \(dis(x,p_x)\le dis(x,p_{son})\) 阅读全文
posted @ 2021-06-24 20:22 oisdoaiu 阅读(25) 评论(0) 推荐(1) 编辑
摘要: tag:背包dp,插值 考场50分,对着数据怀疑人生一个小时,然后教练过来说数据挂了。。 然而下发的标程也挂了,又怀疑人生了一个小时。。 对于 \(40%\) 很容易就能想到枚举 \(m\),然后跑背包dp。 仔细观察这个dp是形如: \[ \sum_{S\subseteq\{1\cdots n\} 阅读全文
posted @ 2021-06-24 20:21 oisdoaiu 阅读(35) 评论(0) 推荐(1) 编辑
摘要: tag:二分,模拟,李超线段树,倍增 max的变化只有最多n次,直接模拟。。 用二分可以找出每个点作为mx的时间段,然后用倍增去跳 #include<bits/stdc++.h> using namespace std; template<typename T> inline void Read(T 阅读全文
posted @ 2021-06-24 16:44 oisdoaiu 阅读(27) 评论(0) 推荐(0) 编辑
摘要: tag:高斯消元,多项式,二分图 首先要知道如何用矩阵求完美匹配数量。。。 就是邻接矩阵(\(a_{i,j}=1\) 表示左边的 \(i\) 和右边的 \(j\) 连边)的积和式,也就是这个东西: \[ \sum_{\sigma}(\prod a_{i,\sigma_i}) \] 其实就是把行列式的 阅读全文
posted @ 2021-06-24 16:43 oisdoaiu 阅读(39) 评论(0) 推荐(0) 编辑
摘要: tag:贪心,扫描线 对于只有一种器材的情况,贪心就是按照右端点从大到小扫,每次找到左端点最大的,把当前点分配给他。 对于每个器材,都这样处理,然后将分配点设为新的右端点。这样处理以后还是能够得到原来能够得到的每一种方案。 不妨假设每个人就选择在右端点那一天,然后找到选择点最小的那个人,对于其他每一 阅读全文
posted @ 2021-06-24 16:41 oisdoaiu 阅读(16) 评论(0) 推荐(0) 编辑
摘要: tag:组合计数,根号分治 注意到有两种方法计算答案 dp,\(f_i\) 比 \(f_{i-1}\) 多一个 \(f_{i-k}\) 的转移点,所以 \(f_i=f_{i-1}+f_{i-k}\) 将一个黑点和前面的 \(k\) 个绑定成一组,枚举有几组,求组合数 单次复杂度分别为 \(O(n)\ 阅读全文
posted @ 2021-06-24 16:39 oisdoaiu 阅读(25) 评论(0) 推荐(0) 编辑