摘要:
题目传送门 题目中的点满足 \(y\le x\),那么不妨把每个点看成区间 \([y,x]\)。那么题目相当于要求维护若干个区间,支持修改,以及查询询问区间中区间长度的最小值。 从“区间长度的最小值”入手。显然包含别的区间的区间不能成为答案。排除了这样的区间,剩下区间按左端点升序排序,则右端点也单调 阅读全文
摘要:
题目传送门 首先可以对每一辆车计算出能检测出其超速的区间。分析之后发现直接对着这些区间考虑是不太好做的(考场上卡在这里了)。所以考虑二分得到每辆车能被哪些测速仪测出超速,于是每辆车都对应一个测速仪的位置区间。 将这些区间按右端点升序排序,可以贪心地用区间的右端点考虑:如果右端点不在下一个区间内,说明 阅读全文
摘要:
ABC202E Count Descendants 线段树合并模板题。 每次询问就是给定有序数对 \((u,d)\),求有根树 \(T\) 上,点 \(u\) 的子树内有多少点 \(v\),使得 \(v\) 的深度恰好等于 \(d+1\)。定义根节点深度为 \(1\)。 考虑对每一个点开一个长度为 阅读全文
摘要:
ABC318E Sandwiches 第一次场切 E 题,感动。虽然比较水 注意到 \(\{a_n\}\) 的值域上限为 \(n\),考虑值域相关算法,对每一个 \(a_i\) 开一个 std::vector ,记作 \(pos_{a_i}\),存储 \(a_i\) 所有的出现位置。 枚举 \(x 阅读全文
摘要:
CF1872B The Corridor or There and Back Again 观察第二组样例的解释,注意这句话:“第二个陷阱限制了你”。这启发我们计算经过每个陷阱之后最多还能向前走到哪里,然后取 \(\min\) 得到答案。 现在的问题是如何求出每个陷阱限制的最远可到达点。 由于要求折返 阅读全文
摘要:
CF1867B XOR Palindromes 这里是一个关于 \(n\) 的奇偶性分类讨论的做法。 设最终的答案序列为 \(\{ans_{n+1}\}\),它由 \(0,1\) 组成。 首先计算出原序列中有序数对 \((i,n-i+1)\) 的个数,使得 \(s_i \not= s_{n-i+1} 阅读全文
摘要:
CF1867C Salyg1n and the MEX Game 简单博弈论题。 设给出序列的 \(\text{mex}\) 为 \(x\),那么 Alice 第一次操作时加入 \(x\) 一定是最优的。此时显然有 \(\text{mex(s)} \ge x\)。 因为如果加入的数 \(y<x\), 阅读全文
摘要:
CF1873F Money Trees 双指针好题,但是我用的队列( 考虑先找出所有极长的、满足任意一个数都能被它后面的那个数整除的连续段。显然这个操作可以在 \(\mathcal{O}(n)\) 的时间复杂度内完成。 求出每个极长连续段的答案,取 \(\max\) 即为最终答案。那么现在的问题就是 阅读全文
摘要:
P5227 [AHOI 2013] 连通图 线段树分治板子题。 根据套路,先将所有操作离线,用线段树分治将删边转化为加边后撤销。 具体而言,记录每个操作有效的时间段,插入到线段树上对应的区间。用可撤销并查集维护连通性,用栈记录已经进行过的操作,以便之后进行撤销。感觉说的了很多没用的,具体还是看代码吧 阅读全文