摘要:
给出 \(n\),对于任意正整数 \(i\) 满足 \(1 \leq i \leq n\),求有多少个正整数 \(j\) 满足 \(1\ leq j \leq n\) 且 \(i \bmod j \leq \frac{j}{2}\)。 枚举 \(i\) 不好处理,可以反过来,外层枚举 \(j\),内 阅读全文
摘要:
你有 \(n\) 个正整数 \(a_1,a_2,\cdots,a_n\),它们的和是 \(m\)。你想对他们的每个子集 \(S\),求出它们的和。 现在你得到了 \(2 ^ n\) 个 \([0,m]\) 之间的和,其中数字 \(i\) 出现了 \(b\) 次。 现在给出数组 \(b\),请还原 \ 阅读全文
摘要:
著名的植物学家 Alice 经过多年的探索,终于找到了传说中的璀璨花。璀璨花的生长速度非常迅猛,如果不加以合适的控制,璀璨花会因为过度内耗而死亡。璀璨花的生长趋势可以用序列 \(a\) 表示,Alice 在研读前人对璀璨花的研究后总结出了一个控制序列 \(b\)。Alice 需要让璀璨花的生长趋势尽 阅读全文
摘要:
本文 Markdown 源代码冲刺 \(3000\) 行中,目前行数:\(2794\) 行。 【0】线段树简介 【0.1】线段树是干什么的 线段树是一种基于分治的树形数据结构,可以处理很多区间问题,值域问题。 【0.2】线段树的形态 线段树作为一棵二叉树,其左子节点维护的是左半区间的信息,右子节点维 阅读全文
摘要:
题目传送门 【-1】前言 这题的剪枝真的太妙了,很难想象巨佬是怎么独立想出来这所有的剪枝的。 本题解没有包含所有的剪枝,只选了我认为最好理解的几条剪枝。 想学习所有的剪枝的右转巨佬的题解。 【1】本题大框架:迭代加深搜索(IDDFS) 看到 \(1 < a < b < 1000\),可以猜测分数的个 阅读全文
摘要:
先看一个例子: 给出正整数 \(n(n \leq 10^{12})\),计算: \[\sum_{i = 1}^n \lfloor \frac{n}{i} \rfloor \]如果直接暴力,复杂度为 \(O(n)\),无法在 1s 内通过,但使用数论分块(整除分块)可以将复杂度降至 \(O(\sqrt 阅读全文
摘要:
题目传送门 请确保您接触过莫队再阅读此文: 注:下文中的所有 \(\oplus\) 均表示两数按位异或。 对于所有询问,和普通莫队一样的分块然后排序。在这里只讨论 add 和 del 操作的具体实现。 题目中需要求一段区间的异或值,所以我们可以预处理序列 \(a\) 的“前缀异或值”pre_xor, 阅读全文
摘要:
众所周知,分块是一种比较暴力的数据结构。 虽说分块效率不高,但它能处理一些树状数组和线段树难以维护的东西(尤其是不具备可拆分性和可合并性的东西)。 分块遵循整块维护,块内暴力的原则。所以我们一般先考虑一个暴力算法,再使用分块优化。 建立分块: 我们定义一个分块的结构体 b,分别存储每个块的首尾。 对 阅读全文
摘要:
题目传送门 众所周知,线段树是维护区间的,但是这里的线段不能直接用区间维护,所以我们首先转换一下题意:(这部分是我学了 OI-wiki 上的) 加入一个一次函数,定义域为 \([l,r]\); 给定 \(k\),求定义域包含 \(k\) 的所有一次函数中,在 \(x = k\) 处取值最大的那个,如 阅读全文