摘要:
# A. Queries > 维护一个序列,要求支持单点修改和查询区间异或和之和 线段树 对于每一个二进制位单独考虑。考虑第 $b$ 位的异或前缀和 $S$,则区间 $[l, r]$ 内的异或和为 $S_r \oplus S_{l - 1}$。若结果不为零,则 $S_r$ 和 $S_{l - 1}$ 阅读全文
摘要:
# Part A: 性能测量 首先别忘了预热 cache。先跑一遍 `poly` 函数,从而避免在测量时由于 cold cache 带来的 cache miss 而导致测量值偏大。然后跑若干次 `poly` 函数,分别测量运行时间并取平均值。 ```cpp void measure_time(pol 阅读全文
摘要:
记当前根为 root,查询的节点为 x - 若 x = root,答案即为所有结点的最小值 - 若 x 与 root 在 1 的不同子树中,答案即为 x 的子树最小值 - 若 x 与 root 在 1 的同一子树中 - 若 x 在 以 root 为根的子树中,答案为 x 的子树最小值; - 若 x 阅读全文
摘要:
动态规划要求已经求解的子问题不受后续阶段的影响,即无后效性。而在这种递推的实现方式中,后面枚举的状态可能更新前面已经枚举过的状态。也就是说,这种递推的实现方式是具有后效性的。 以这组数据为例 ``` 3 3 1 -1 1 0 1 -1 0 0 1 ``` 正解应为 $3$ 次($111 \to 01 阅读全文
摘要:
我们用一个数列 $\{a_n\}$ 来表示这些杯子,$a_n=1$ 表示第 $n$ 个杯子下藏有小球,$a_n=0$ 表示没有。那么第 $[l,r]$ 个杯子底下藏有球的总数的奇偶性就可以用这一段上的异或和 $(a_l \text{xor} a_{l+1} \cdots \text{xor} a_r 阅读全文
摘要:
题目来源:Petrozavodsk Winter 2015. Day 2. Makoto Soejima Contest 1 等价于对于折线每个端点,都能找到一条直线使得所有之前和之后的点分立两侧,在每个点处极角排序 + 双指针即可。 #include <stdio.h> #include <alg 阅读全文
摘要:
题目来源:2012-2013 Summer Petrozavodsk Camp, Andrew Stankevich Contest 42 记当前根为 root,查询的两个节点为 u 和 v,子树、LCA 指以 1 为根的子树、LCA u 和 v 都不在 root 所在子树 答案为 LCA(u, v 阅读全文
摘要:
设第 $i$ 种包装中 $j$ 尺寸的杯子数量为 $S_{ij}$,第 $i$ 种包装选取的数量为 $a_i$,若能够按照要求进行重新打包,有 $$ \begin{cases} a_1S_{11} + a_2S_{21} + \cdots + a_nS_{n1} = k \\ a_1S_{12} + 阅读全文
摘要:
这题显然是维护一个递减的单调栈,但是要注意身高相等的情况的处理。 #include <stdio.h> const int MAXN = 500010; int n, tp, stk[MAXN]; long long ans = 0; int main() { scanf("%d", &n); in 阅读全文
摘要:
题目 从前在一个美好的校园里,有一只(棵)可爱的弯枝理树。她内敛而羞涩,一副弱气的样子让人一看就想好好疼爱她。仅仅在她身边,就有许多女孩子想和她BH,比如铃,库特,等等。不过,除却巫山不是云,理树的心理只有那个帅气高大的男孩子——恭介,这让女孩子们不得不终日唉声叹气,以泪洗面。不过恭介是那样强大而完 阅读全文