摘要:
题意 给定一个长度为 \(n\) 的数组。 \(q\) 次询问,每次询问区间 \(mex\)。 Sol 考虑主席树维护区间 \(mex\)。 不难发现可以考虑维护当前所有点的最后出现的下标。 直接套板子即可。 Code #include <iostream> #include <algorithm> 阅读全文
摘要:
题意 给定 \(n\) 个数,你需要把每个数分成两组,使得: 没有组为空。 两个组内所有数的按位或相等。 Sol 不难发现,当某一位上全是 \(1\) 的数被分在了一个集合内时,方案一定不合法。 考虑容斥计算这个东西。 对于每一位,建一个点。考虑把所有数抽象成边,对于当前 \(a_i\) 如果第 \ 阅读全文
摘要:
题意 给定一棵树和 \(3\) 个操作。 如果点 \(x\) 是白色,将她染红,否则对她地儿子做这个操作。 将点 \(x\) 子树内所有点染白。 询问 \(x\) 的颜色。 Sol 考虑对询问分块。 不难想到将当前块内的点建一棵虚树,然后再重构。 暴力建虚树即可。 Code #include <io 阅读全文
摘要:
题意 一个集合,初始为空。 请你维护以下 \(3\) 种操作。 把 \([l, r]\) 中在集合中没有出现过的数添加到集合中。 把 \([l, r]\) 中在集合中出现过的数从集合中删掉。 把 \([l, r]\) 中在集合中没有出现过的数添加到集合中,并把 \([l, r]\) 中在集合中出现过 阅读全文
摘要:
题意 你有一个长为 \(n\) 的序列 \(a_n, a_i = i^k\) 从这个序列里抽出 \(m\) 个互不相同的数,求出这些数中最大值的期望。 请输出答案对 \(998244353\) 取模的结果。 \(8MB\)。 Sol 首先将 \(n,m\) 自减一。 很显然,我们需要求出 \(\db 阅读全文
摘要:
题意 给定一棵大小为 \(n\) 的树。 有两个人,每个点属于其中某一个人。 每轮选择一个度数为 \(1\) 的点删掉,设最后取得点的主人获胜。 问谁会获胜。 Sol 博弈分讨萌萌题。 首先这道题直接做肯定不好做。 考虑从特殊性质出发。 首先,对于链来说。不难想到要对于 \(n\) 的奇偶性分讨。 阅读全文
摘要:
题意 给定一个长度为 \(n\) 的数组,初始每个数的颜色为 \(1\),值为 \(0\)。 维护以下操作: 将 \(l \to r\) 的颜色替换成 \(c\)。 将数组中颜色为 \(c\) 的元素的值加上 \(x\)。 输出 \(a_i\) 的值。 \(n, q \le 10 ^ 6\) Sol 阅读全文
摘要:
题意 给定 \(n\) 个递增数组。 \(k\) 次操作,每次你可以选择一个数组,使 \(ans\) 加上数组的第一个数,并删除。 问最大化的 \(ans\) 的值。 Sol 考虑当前选择的方案如何变得更优。 不难想到,如果当前有两个数组没有选满,则一定可以调整到其中一个变成空的方案,而使得答案不劣 阅读全文
摘要:
题意 给定一个序列,你需要维护下面两种操作: 将所有 \(i \bmod k \in [l, r]\) 的 \(a_i\) 加上 \(x\) 求 \(\sum_{i = l} ^ r a_i\) Sol 考场代码挂成 \(35\) 了,数组全开两倍就直接过了/cf 初始化加强版,把单修改成了区修。 阅读全文
摘要:
题意 给定一张图,\(q\) 次询问,每次询问两点的最小割。 Sol 最小割树模板题。 考虑去分治一个集合 \(S\)。 每次在里面随便找两个点作为源点和汇点,然后在原图上跑最小割。 然后在残量网络上标记源点集和汇点集。 分别放到两个不同的集合,然后继续分治下去即可。 Code namespace 阅读全文