ABC250简要题解

重点在于简要

A,B,C,语法题,跳了。

D是埃筛求个质数枚举一下,跳了、

E

神秘的哈希。

对于前 \(i\) 个数搞个可加哈希,这样能 \(O(1)\) 比较。给了个神秘的哈希方式是 \(\sum a_i\times (a_i+353448299)\) (这质数换一个也成)。神秘的哈希。

我们的红太阳有个更神秘的哈希。就是给每个权值重新rand 一个新权值,然后直接加起来。

哈希果然神秘。

题解区还有一个做法就是对于每种 \(a_i\) 找到最靠前的出现的相同的 \(b_i\),答案就是前 \(x\) 个数的集合的最大值到不属于前 \(x\) 个数的集合的最小值之间。

他说复杂度是 \(O(n+Q)\) 的,就是拿 unordered_map 硬搞就行了。

F

旋转卡壳(\(2^4\))。

就整个双指针,移动的时候用向量叉积实时计算面积即可。

对于左指针,找到最合适的右指针的位置。

G

反悔贪心入门题。

就是如果卖出的话尽可能选个最小的位置买入这支。但是可能有问题,所以考虑反悔贪心。

搞一个堆,每次取出价格最小的。假设买入这支股票的价格为 \(a\),卖出价格为 \(b\) ,那答案加上 \(b-a\),再将\(b\) 插到堆里,这样再取出 \(b\) 的时候相当于消掉了 \(b\) 的贡献。

Ex

非常 NOIP 啊

先将每个点离得最近的关键点的距离求出来(最短路),然后对于每个询问,考虑询问两点间是否可达的时候,一条边能被走当且仅当这条边的边权加上这条边两端点分别到关键点的距离的和小于等于 \(t\),正好询问 \(t\) 单调不降,所以直接用并查集加边即可

posted @ 2022-12-01 20:44  cc0000  阅读(79)  评论(0)    收藏  举报