傻逼题,CF 的数据是假的,不开 std::multiset 都可以过。

发现我们直接缩成一棵广义圆方树然后进行维护。修改点权的时候如果我们暴力修改圆点周围的方点显然可能挂掉,但是如果我们的方点只存圆方树上孩子的信息,那么就只用更新 O(1) 次了,这样的话在求 u \rightarrow v 的路径的时候判断一下 LCA 是不是方点即可。时间复杂度 O(n \log^2 n)

READ MORE

定义 s(x, y) 为将 xy 进行不进位加法的结果,求对于 a_{1 \dots n} 依次选出 n 个可以重复的数 b_{1 \dots n} ,求 \forall i \in [1, n] , s(b_1, b_2, b_3, \dots b_n) = i 的方案数目。n, a_i \leq 10^5 ,对 2^{58} 取模。

READ MORE

首先我们需要理解普通的 FWT 即给一个向量左乘一个矩阵进行转移,这在 k 进制下同样适用。用 w(i,j) 表示 \operatorname{fwt} 矩阵的第 i 行第 j 项。

对于给定的两个数列 ABC 是他们 k 进制下异或卷积的结果,即

\sum_{i \oplus j = k} A_i \times B_j = C_k

显然 FWT 还需要我们满足一个性质,即

\begin{aligned} \operatorname{fwt}(A)[x] \times \operatorname{fwt}(B)[x] &= \operatorname{fwt}(C)[x] \\ \sum_{i=0}^n w(x, i) A_i \sum_{j=0}^n w(x, j) B_j &= \sum_{k=0}^n w(x, k) C_k \end{aligned}

为了方便计算,我们希望能够构造出这样的 w 使得

\sum_{i \oplus j = k} w(x, i) A_i \times w(x, j) B_j = w(x, k) C_k

如果有

\forall i \oplus j = k, w(x, i) \times w(x, j) = w(x, k)

显然这就是个合法的 k 进制 \operatorname{fwt} 变换。

我们只构造一个满足 \forall i \oplus j = k, w(x, i) \times w(x, j) = w(x, k) 的矩阵 T 即可。

READ MORE

对于一个 1 \cdots n (n \leq 5 \times 10^5) 的排列 p_{1 \cdots n} ,定义 next_i 为第一个 j 满足 i < j, p_i < p_j ,如果不存在这样的 j ,则 next_i = n + 1 。给定一个缺失若干位的 next 数组,求构造任一合法的 p 数组。

READ MORE

有一个 n (n \leq 20) 的骰子,分别写着 0 \cdots (n - 1) ,每个数被投掷出来的概率是相同的,现在我们投掷了 m (m \leq 2\times10^5) 次,造成的伤害为 m 次骰子的点数和 \xi ,求 Pr[a \leq \xi \leq b]

Link

READ MORE

DZY 开始有 n 个点,现在他对这 n 个点进行了 m 次操作,对于第 i 个操作(从 1 开始编号)有可能的三种情况:

  • Add a b: 表示在 ab 之间连了一条长度为 i 的边(注意,i 是操作编号)。保证 1 \leq a,b \leq n
  • Delete k: 表示删除了当前图中边权最大的 k 条边。保证 k 一定不会比当前图中边的条数多。
  • Return: 表示撤销第 i−1 次操作。保证第 1 次操作不是 Return 且第 i−1 次不是 Return 操作。

请你在每次操作后告诉 DZY 当前图的最小生成树边权和。如果最小生成树不存在则输出 0

n \leq 3\times10^5, m \leq 5\times10^5

Link

READ MORE

依次抛 n + m 枚硬币,每次有 p 的概率正面朝上, 1 - p 的概率反面朝下。其中 p 是给定的常数且对 T 组数据均相同。已知其中 n 次正面朝上,剩余 m 次反面朝上。维护一个计分器 s ,如果硬币是正面那么使 s 自增,如果硬币是反面且 s 是正数,那么使 s 自减。求 s 的期望。
(n + m), T \leq 2.5 \times 10^5, 0 < P' < 1000 ,其中 P' = P / 1000

Link

READ MORE

当中考与 OI 风格的游记碰撞在一起,会摩擦出怎样的火花呢?

Q: 为什么写的是「杭州中考」而不是「杭州中考 2019」?

A: 因为貌似抽不到再来一次。

READ MORE

定义 \otimes_1, \otimes_2, \otimes_3 分别为按位与、按位或、按位异或运算。记 a_i 表示 a 的从低位到高位的第 i 个二进制位。定义一个作用在 w 位二进制数上的新运算 \oplus,满足对于结果 a\oplus b 的每一位 (a\oplus b)_i(a\oplus b)_i = a_i \otimes_{o_i} b_i。不难验证 \oplus 运算满足结合律和交换律。

给出一张 n 个点 m 条边的无向图,每一条边的权值是一个 w 位二进制数(即小于 2^w 的非负整数)。请你找一棵原图的生成树。设你找出的生成树中的边边权分别为 v_1,\cdots,v_{n-1},请你最大化 v_1\oplus v_2\oplus\cdots\oplus v_{n-1}

READ MORE

\forall i \in [1, n] ,连续性随机变量 f[i][0, 1] 范围内生成,\forall i < j, f_i < f_j 存在一条 i \leftrightarrow j 的双向边,求联通块的大小的期望乘积。

READ MORE