摘要: 取石子 题意 有 \(n\) 堆石子,每堆有 \(a_1, a_2, a_3...a_n\) 个石子,进行若干轮,使得每堆石子的数量相同。 每一轮:选择一个限定值 \(h\) ,将所有石子数量大于 \(h\) 的堆去除直到剩下 \(h\) 个石子。注意每一轮去除的石子数量不能超过 \(k\) 。 给 阅读全文
posted @ 2021-11-20 15:36 Rainea 阅读(78) 评论(0) 推荐(0)
摘要: Potions (Hard Version) 题意 有 \(n\) 个药品,从左到右摆放,每到达一个药瓶处,你可以选择喝下或不喝药,并增加 \(a_i\) 血量(注意 \(a_i\) 可能为负数)。 你的血量初始值为 \(0\) ,从最左边开始走到最右边,你需要保证每时每刻血量都不为负数,请问最多可 阅读全文
posted @ 2021-11-20 15:34 Rainea 阅读(64) 评论(0) 推荐(0)
摘要: Nezzar and Board 题意 有长度为 \(n\) 的序列 \(a\) ,每次可以选择任意两个数字 \(x, y\) (可以相同),把 \(2 \times x - y\) 写入序列 \(a\) 中(\(x, y\) 不会消失),问进行若干次操作后,能否得出给定数字 \(K\) ? \(1 阅读全文
posted @ 2021-11-20 15:31 Rainea 阅读(73) 评论(0) 推荐(0)
摘要: GCD和LCM的另一种求法 阅读全文
posted @ 2021-11-20 15:29 Rainea 阅读(46) 评论(0) 推荐(1)
摘要: 区间筛 阅读全文
posted @ 2021-11-20 15:26 Rainea 阅读(28) 评论(0) 推荐(0)
摘要: Mike and Foam 题意 有长度为 \(n\) 的序列 \(a\) ,最开始里面的元素都未激活。 有 \(q\) 次询问,每次将一个元素从激活变成未激活,或者从未激活变成激活。 每次询问后,输出激活的数字中互质的序偶数量。 分析 直接对激活序列求互质序偶数量比较复杂,可以使用容斥原理。 序列 阅读全文
posted @ 2021-11-20 14:34 Rainea 阅读(48) 评论(0) 推荐(0)
摘要: Array Differentiation 题意 给定长度为 \(n\) 的序列 \(a\) ,问是否存在一个长度为 \(n\) 的序列,满足: 对于任意 \(1 \le i \le n\),存在 \(1 \le j, k \le n\) ,满足 \(a_i = b_j - b_k\) 。 其中 \ 阅读全文
posted @ 2021-11-20 14:30 Rainea 阅读(45) 评论(0) 推荐(0)
摘要: 并查集拓展域 并查集是用来维护元素之间的制约关系,并且在更新时可以传递关系的一种数据结构,但有时候只靠是否在集合内不足以表示复杂的关系,因此引入了拓展域的关系. 例题 食物链 1. 带权并查集 #include <iostream> #include <numeric> #include <func 阅读全文
posted @ 2021-11-20 14:27 Rainea 阅读(90) 评论(0) 推荐(0)
摘要: 最近公共祖先 (LCA) 在一个有根树中,两个结点 $a、b$​ 都有若干个祖先(本身也是自己的祖先),他们也会有公共的祖先,距离他们最近,也就是在有根树中深度最大的祖先,被称做 \(a、b\) 的最近公共祖先。 求最近公共祖先 向上标记法 先从一个点开始向上走到根节点,再由另一个结点开始向上走,走 阅读全文
posted @ 2021-11-20 14:21 Rainea 阅读(64) 评论(0) 推荐(0)
摘要: 质数筛选 质数筛选指在一个范围内筛去非质数,留下质数,通常用单独的质数数组保存留下的质数。 埃氏筛 对于每个数字(从2开始),筛去它所有的倍数,那么留下来的一定都是质数。 证:对于任意和数 \(x\) ,一定存在一个质因数 \(pj\) ,那么我们一定可以用 \(pj\) 筛去 \(x\) 。 时间 阅读全文
posted @ 2021-11-20 14:19 Rainea 阅读(56) 评论(0) 推荐(1)