摘要:
Description 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份。然而数据备份的工作是枯燥乏味的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣。已知办公楼都位于同一条街上。你决定给这些办公楼配对(两个一组)。每一对办公楼可 阅读全文
摘要:
Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由 阅读全文
摘要:
树链剖分 树链剖分是一种对树的分治, 可以把树上的任意一条链分解为 $O(\log n)$ 条在dfs序上相邻的子链, 便于数据结构(如线段树)来维护. 另外, 子树在dfs序上也是一个连续的区间, 同样可以利用数据结构维护. 重链剖分保证了一些性质: 1. 每个点到根的重链条数为 $O(\log 阅读全文
摘要:
树的重心 "树的其他问题 OI Wiki" 定义 $(1)$ 树的重心 $\leftrightarrow$ 所有的子树中最大的子树节点数最少的节点. $(2)$ 树的重心 $\leftrightarrow$ 所有子树的大小都不超过整个树大小的一半的节点. 性质 删去重心后, 生成的多棵树尽可能平衡. 阅读全文
摘要:
简介 虚树可以解决一些关于树上一部分节点的问题. 对于一棵树 $T$ 的一个子集 $S$, 可以在 $O(|S| \log |S|)$ 的时间复杂度内求出 $S$ 的虚树. 虚树包括根节点, 所有询问点和所有询问点之间的 $lca$. 代码 例题: BZOJ2286 [Sdoi2011]消耗战 建立 阅读全文
摘要:
K D Tree K D Tree可以看作二叉搜索树的高维推广, 它的第 $k$ 层以所有点的第 $k$ 维作为关键字对点做出划分. 为了保证划分均匀, 可以以第 $k$ 维排名在中间的节点为划分节点. 这可以利用 实现. K D Tree 支持单点修改. 为了保证 K D Tree 的平衡性, 可 阅读全文
摘要:
简介 二叉搜索树, 可以维护一个集合/序列, 同时维护节点的 $size$, 因此可以支持 , , , 等操作. 另外, ; . 平衡树通过各种方法保证二叉搜索树的平衡, 从而达到 $O(\log n)$ 的均摊复杂度. Splay Splay 不仅可以实现一般平衡树的操作, 还可以实现序列的翻转/ 阅读全文
摘要:
简介 经常遇到一些复杂度与约数个数 $\text d(n)$ 相关的题, 但是并不保证复杂度, 而且也没见到很好的估计(可能是我菜)... 所以打表算了一下, 下面是结果. 1. $\le 10^5$ 的数中 $d(n)$ 最大的出现在 $83160 = 2^3 \cdot 3^3 \cdot 5 阅读全文
摘要:
Description Alice想要得到一个长度为nn的序列,序列中的数都是不超过mm的正整数,而且这nn个数的和是pp的倍数。 Alice还希望,这nn个数中,至少有一个数是质数。 Alice想知道,有多少个序列满足她的要求。 输入输出格式 输入格式: 一行三个数,n,m,p。 输出格式: 一行 阅读全文
摘要:
简介 线性基是一个最小的集合 $S = \{p_i\}, i \in \{ 0, 1, \cdots ,n 1 \}$, $p_i$ 为非 $0$ 二进制数, 且每个数在异或意义下线性无关. 将 $n$ 称作线性基的 秩 . 它可以通过异或唯一的表示出 $T = \{a_i\}, i \in \{ 阅读全文