摘要:
哦噢啊啊啊啊 ".cpp.cpp" ".cpp.cpp" ".cpp.cpp" ".cpp.cpp" ".cpp.cpp" ".cpp.cpp" ".cpp.cpp" ".cpp.cpp" ".cpp.cpp" "找不到选手程序" "找不到选手程序" "找不到选手程序" "找不到选手程序" "找不到 阅读全文
摘要:
%你赛打到一半来写个题解 link:疯狂lcm 题意,求: \[\sum_{i=1}^{n}lcm(i,n) \]不多说废话,直接开推: \[\begin{aligned} &=n\sum_{i=1}^{n}\frac{i}{gcd(i,n)}\\ &=n\sum_{d\mid n}\sum_{i= 阅读全文
摘要:
前置知识: 复数,单位根,多项式乘法,点值表示法,系数表示法 \(\cdots\) 单位根: 首先,我们在一个复平面中定义一个单位圆,将单位圆等分为 \(n\) 份,把位于单位圆上幅角为正且最小的向量定义为 \(n\) 次单位根,记为 \(\omega_n\)。 那我们来考虑一下单位根的奇妙性质: 阅读全文
摘要:
与顺序相关的 \(2\) 元组求值问题,往往利用线段树进行维护,算一种经典的操作。 我们不妨先从一道简单的问题入手:求数列逆序对数。 树状数组是一个不错的选择,利用其前缀和性质维护桶,倒着扫,边扫边加数,同时查询,非排列再离散化一下,问题在 \(\Theta(n\log n)\) 复杂度内得解。 # 阅读全文
摘要:
写在前面:序列分治是一种比较常见的技巧,将问题划分中点,每次只考虑计算跨区间中点算贡献,然后递归左右区间分开统计答案即可。 Analysis 本题不同的区间均能对答案产生贡献,我们考虑如何跨中点算贡献。与常见跨中点算贡献的套路相同,我们将跨中点右区间划分为三段:最值靠左,最值左右各异,最值靠右。再根 阅读全文
摘要:
写在前面: 说实话本蒟蒻并没有足够的实力与自信去完成这样一件作品,所谓的“优化”也不过是我个人拙劣理解,但是形成这样一个完整的知识框架必然有益无害,与我而言,这件事一定要做,所以本蒟蒻会坚持很长时间,去完善本篇博客。因此本博客在某种意义上相当于我个人的成长记录,在它逐渐成型的过程中必然伴随着漏洞,谬 阅读全文
摘要:
简介: \(\mathbf{meet}\) \(\mathbf{in}\) \(\mathbf{the}\) \(\mathbf{middle}\) 是一种特殊的搜索技巧,利用了“折半”这种思想,先分别搜出两半子问题的答案,再利用总问题与子问题之间的关系进行合并,得出答案。 关于时间复杂度: 原问题 阅读全文
摘要:
## 闲话 8.23 起因是 Rolling_star 在考古 IMO 时发现了这样一道预选题: 给出序列 $\{a_n\}$ 满足: $$2^n=\sum_{d|n}{a_d}$$ 求证: $$n|a_n$$ 我们先做一遍底幂轮换 ($Swap$ $the$ $base$ $number$ $wi 阅读全文