0%

题意描述

洛谷链接

小 C 最近学了很多最小生成树的算法,Prim 算法、Kruskal 算法、消圈算法等等。正当小 C 洋洋得意之时,小 P 又来泼小 C 冷水了。小 P 说,让小 C 求出一个无向图的次小生成树,而且这个次小生成树还得是严格次小的,也就是说:如果最小生成树选择的边集是 \(E_M\),严格次小生成树选择的边集是 \(E_S\),那么需要满足:(\(value(e)\) 表示边 \(e\) 的权值) \(\sum_{e \in E_M}value(e)<\sum_{e \in E_S}value(e)\)

这下小 C 蒙了,他找到了你,希望你帮他解决这个问题。

对于 \(100\%\) 的数据, \(N\le 10^5\)\(M\le 3\times10^5\),边权 \(\in [0,10^9]\),数据保证必定存在严格次小生成树。

阅读全文 »

题意描述

洛谷链接

首先村落里的一共有 \(n\) 座房屋,并形成一个树状结构。然后救济粮分 \(m\) 次发放,每次选择两个房屋 \((x,~y)\),然后对于 \(x\)\(y\) 的路径上(含 \(x\)\(y\))每座房子里发放一袋 \(z\) 类型的救济粮。

然后深绘里想知道,当所有的救济粮发放完毕后,每座房子里存放的最多的是哪种救济粮。

对于 \(100\%\) 测试数据,保证 \(1 \leq n, m \leq 10^5\)\(1 \leq a,b,x,y \leq n\)\(1 \leq z \leq 10^5\)

阅读全文 »

题意描述

洛谷链接

LibreOJ 链接

对于一个序列,定义其众数为序列中出现次数严格大于一半的数字。注意该定义与一般的定义有出入,在本题中请以题面中给出的定义为准。

一开始给定 \(n\) 个长度不一的正整数序列,编号为 \(1 \sim n\),初始序列可以为空。这 \(n\) 个序列被视为存在,其他编号对应的序列视为不存在。

\(q\) 次操作,操作有以下类型:

  • \(1 \ x \ y\):在 \(x\) 号序列末尾插入数字 \(y\)。保证 \(x\) 号序列存在,且 \(1 \le x, y \le n + q\)
  • \(2 \ x\):删除 \(x\) 号序列末尾的数字,保证 \(x\) 号序列存在、非空,且 \(1 \le x \le n + q\)
  • \(3 \ m \ x_1 \ x_2 \ x_m\):将 \(x_1, x_2, \ldots, x_m\) 号序列顺次拼接,得到一个新序列,并询问其众数。如果不存在满足上述条件的数,则返回 \(-1\)。数据保证对于任意 \(1 \le i \le m\)\(x_i\) 是一个仍然存在的序列,\(1 \le x_i \le n + q\),且拼接得到的序列非空。注意:不保证 \(\boldsymbol{x_1, \ldots, x_m}\) 互不相同,询问中的合并操作不会对后续操作产生影响。
  • \(4 \ x_1 \ x_2 \ x_3\):新建一个编号为 \(x_3\) 的序列,其为 \(x_1\) 号序列后顺次添加 \(x_2\) 号序列中数字得到的结果,然后删除 \(x_1, x_2\) 对应的序列。此时序列 \(x_3\) 视为存在,而序列 \(x_1, x_2\) 被视为不存在,在后续操作中也不会被再次使用。保证 \(1 \le x_1, x_2, x_3 \le n + q\)\(x_1 \ne x_2\)、序列 \(x_1, x_2\) 在操作前存在、且在操作前没有序列使用过编号 \(x_3\)

假定 \(C_l = \sum l_i\) 代表输入序列长度之和,\(C_m = \sum m\) 代表所有操作 \(3\) 需要拼接的序列个数之和;对于所有测试数据,保证 \(1 \le n, q, C_m, C_l \le 5 \times {10}^5\)

阅读全文 »

题意描述

洛谷链接

对于给出的 \(n\) 个询问,每次求有多少个数对 \((x,y)\),满足 \(a \le x \le b\)\(c \le y \le d\),且 \(\gcd(x,y) = k\)\(\gcd(x,y)\) 函数为 \(x\)\(y\) 的最大公约数。

对于 \(100\%\) 的数据满足:\(1 \le n,k \le 5 \times 10^4\)\(1 \le a \le b \le 5 \times 10^4\)\(1 \le c \le d \le 5 \times 10^4\)

阅读全文 »

莫比乌斯函数

了解莫比乌斯反演前,我们先要了解莫比乌斯函数。记 \(\mu(n)\) 为莫比乌斯函数,\(n\) 可被分解质因数为 \(n = \prod_{i = 1}^{m}{ {p_i}^{c_i} }\) 定义如下:

\[ \mu(n) = \begin{cases} 1 & n = 1 \\ 0 & \exists i \in [1, m], c_i > 1 \\ (-1)^m & \forall i \in [1, m], c_i = 1 \\ \end{cases} \]

形式化地解释一下:

  • \(n = 1\) 时,\(\mu(n) = 1\)
  • \(n\) 存在至少一个出现次数大于等于两次的质因子时,\(\mu(n) = 0\)
  • \(n\) 的所有质因子仅出现过一次,且 \(n\) 有奇数个质因子时,\(\mu(n) = -1\)
  • \(n\) 的所有质因子仅出现过一次,且 \(n\) 有偶数个质因子时,\(\mu(n) = 1\)
阅读全文 »

题意描述

洛谷链接

有一次,HKE 和 LJC 在玩一个游戏。

游戏的规则是这样的:LJC 在纸上写下两个长度均为 \(n\) 的数列 \(a\)\(b\),两个数列一一对应。HKE 每次可以找两个相邻的数 \(a_i\)\(a_{i + 1}\),如果它们两个不互质,HKE 可以选择得到 \((b_i + b_{i + 1})\) 分,然后擦掉 \(a\)\(b\) 位置上的第 \(i, i + 1\) 个数,并把两个序列重新按顺序编号。当所有相邻的数互质时,游戏结束。

HKE 想知道他最大得分是多少。

阅读全文 »

题意描述

洛谷链接

LibreOJ 链接

小豆现在有一个数 \(x\) ,初始值为 \(1\) 。 小豆有 \(Q\) 次操作,操作有两种类型:

  • 1 m\(x = x \times m\) ,输出 \(x \bmod M\)

  • 2 pos\(x = x /\)\(pos\) 次操作所乘的数(保证第 \(pos\) 次操作一定为类型 1,对于每一个类型 1 的操作至多会被除一次),输出 \(x\bmod M\)

阅读全文 »