OI
「SPOJ375」QTREE1-LCT
· ✏️ 1045 words · ☕ 3 mins read

给定 $n$ 个点的树,边按输入顺序编号为 $1,2,…,n-1$,要求作以下操作:

  • CHANGE i v :将第 $i$ 条边权值改为 $v$
  • QUERY a b :询问从 $a$ 点到 $b$ 点路径上的最大边权

有多组测试数据,每组数据以 DONE 结尾。


「SPOJ2666」QTREE4-LCT
· ✏️ 1466 words · ☕ 3 mins read

你被给定一棵 $n$ 个点的带边权的树(边权可以为负)。每个点可能有两种颜色:黑或白。我们定义 $dist(a,b)$ 为点 $a$ 至点 $b$ 路径上的边权值之和。一开始所有的点都是白色的。

要求作以下操作:

  • C a 将点a的颜色反转(黑变白,白变黑)

  • A 询问 $dist(a,b)$ 的最大值。$a,b$ 点都必须为白色( $a$ 与 $b$ 可以相同),显然如果树上仍存在白点,查询得到的值一定是个非负数。
    特别地,如果进行 A 操作时树上没有白点,输出 They have disappeared.


「BJOI2014」大融合-LCT
· ✏️ 662 words · ☕ 2 mins read

小强要在 $N$ 个孤立的星球上建立起一套通信系统。这套通信系统就是连接 $N$ 个点的一个树。 这个树的边是一条一条添加上去的。在某个时刻,一条边的负载就是它所在的当前能够 联通的树上路过它的简单路径的数量。

现在,你的任务就是随着边的添加,动态的回答小强对于某些边的负载的询问。


「国家集训队」最长双回文子串-回文自动机
· ✏️ 310 words · ☕ 1 mins read

输入长度为 $n$ 的串 $S$ ,求 $S$ 的最长双回文子串 $T$,即可将 $T$ 分为两部分$X$ , $Y$ , ( $∣X∣,∣Y∣ \geq 1$ )且 $X$ 和 $Y$ 都是回文串。


「CF875E」Delivery Club-二分+贪心
· ✏️ 699 words · ☕ 2 mins read

有两个快递员,分别在 $s_1, s_2(0\le s_1,s_2\le 10^9)$ 位置。现在有 $n(1\le n\le 100000)$ 个任务,需要依次完成,每个任务用一个整数 $x_i$ 表示要将货物送到 $x_i$ 位置,让任何一个快递员到 $x_i$ 都可以。

由于快递员之间需要有对讲机联系,请你设计一种方案使得两个快递员之间的最长距离最短。


「CF353E」 Antichain-乱搞
· ✏️ 650 words · ☕ 2 mins read

给定一个长度为 $n$ 的 $01$ 序列,第 $i$ 位是 $0$ 代表 节点 $i$ 到节点 $i \bmod n + 1$ 有一条有向边,第 $i$ 位是 $1$ 代表 节点 $i \bmod n + 1$ 到节点 i 有一条有向边。

我们称一个节点对 $(u,v)$ 是妙的当且仅当不存在 $u$ 到 $v$ 和 $v$ 到 $u$ 的路径任何两者之一。

现在你要从这个图里面挑出一个集合,使得集合中任意两个不同的节点 $u$ 和 $v$ 之间构成的节点对 $(u,v)$ 都是妙的。

请你输出这个集合的大小的最大值。


「CF581F」 Zublicanes and Mumocrates - 树形dp
· ✏️ 580 words · ☕ 2 mins read

一棵树上有 $n$ 个节点,把每个节点染成黑色或白色,要求叶子节点一半是黑色,一半是白色(保证叶子节点的个数是偶数)。

求在满足要求的情况下,最小的两端颜色不同的边的数量。


「CF542D」Superhero's Job - dp + 数论
· ✏️ 627 words · ☕ 2 mins read

我们定义
$$
J(x) = \sum _ {d | x} [\gcd(x,\frac{x}{d}) = 1] d
$$

请你求出 $J(x) = A$ 有多少个 $x$ 满足条件。


「CF804D」Expected diameter of a tree-树的直径+乱搞
· ✏️ 1006 words · ☕ 3 mins read

给定一个含有 $n$ 个点, $m$ 条边的森林。有 $q$ 个询问,每次给出两个点 $u_i,v_i$ ,如果 $u_i$ 在联通块 $A$ 内,$v_i$ 在联通块 $B$ 内,我们随机选择两个点 $a \in A,b \in B$ ,我们在 $(a,b)$ 之间连一条边,如果这个连接成后新联通块不构成一个树,输出 $-1$ ,否则输出新联通块树的直径的期望。所有边权均为 $1$ 。


「CF543C」Remembering Strings-状态压缩dp
· ✏️ 658 words · ☕ 2 mins read

给定 $n$ 个长度均为 $m$ 的字符串,再给出一个 $n$ 行 $m$ 列的矩阵 ${a _ {nm}}$。
矩阵元素 $a _ {ij}$ 代表把第 $i$ 个字符串第 $j$ 个字符改成其它任意字符所需要的代价。

现在要求对于任意一个字符串,总存在某一位置 $j$ 使得该位置上的字符在任意其他字符串该位置的字符不同。

即为对于第 x 个字符串 ,有 $\exists j \in [1,m] , \forall i \in [1,n],s _ {xj} \neq s _ {ij}$ 。

求把所有字符串修改成满足上述要求的字符串的最小代价是多少?

数据范围: $1 \le n,m \le 20,1\le a _ {ij} \le 10^6$ 。


「CF321E」Ciel and Gondolas-wqs二分+决策单调性
· ✏️ 739 words · ☕ 2 mins read

Ciel 狐狸在游乐园里排队等待上摩天轮。现在有 $n$ 个人按编号顺次在队列里,有 $m$ 条船,第 $i$ 条船到时,前 $q _ {i}$ 个人可以上船。保证 $\sum q_i = n$。 人总是不愿意和陌生人上同一条船的,当第 $i$ 个人与第 $j$ 个人处于同一条船上时,会产生 $u _ {i,j}$ 的沮丧值。请你求出最小的沮丧值和。一条船上的人两两都会产生沮丧值,不会计算这个沮丧值两次。


「CF877F」Ann and Books-莫队
· ✏️ 628 words · ☕ 2 mins read

有 $n$ 本书,第 $i$ 本书中有 $a_i$ 个问题,均属于第 $t_i$ 类问题。

有 $q$ 次询问,每次询问给出一个区间 $[l_i,r_i]$ ,询问有多少个原序列的连续子区间是给出区间的子区间,且该子区间中所有书中问题的和满足第 $1$ 类的问题恰好比第 $2$ 类的问题恰好多 $k$ 个。


「CF476E」Dreamoon and Strings-动态规划
· ✏️ 774 words · ☕ 2 mins read

Dreamoon 有一个字符串 $s$ 和一个模式串 $p$ ,他会先从 $s$ 中删除恰好 $x$ 个字符来产生一个新的字符串 $s’$ 。然后他会计算 $occ(s’,p)$,即从 $s’$ 中能找到的等于 pp 的不相交的子串数量的最大值。他想让 $occ(s’,p)$ 的值尽可能大。

更形式地说,让我们用 $ans(x)$ 表示所有可以从 $s$ 中删去恰好 $x$ 个字符得到的 $s’$ 中 $occ(s’,p)$ 的最大值。Dreamoon 想要知道对于所有的 $x$ $(0 \leq x \leq |s|)$, $ans(x)$ 的值。


「CF232D」Fence-后缀数组+主席树
· ✏️ 973 words · ☕ 2 mins read

给定长度为 $n$ 的整数序列 $h[n]$ ,有 $Q$ 个询问,每次给出 $l_1,r_1$ ,​询问有多少对 $l_2,r_2$ ,满足以下条件:

  1. $r_2 – l_2 = r_1 – l_1$
  2. 区间 $[l_1, r_1]$ 与区间 $[l_2, r_2]$ 没有交集
  3. 对于任意 $i \in [0,r_1 – l_1]$ ,满足 $h[l_1 + i] + h[l_2 + i] = h[l_1] + h[l_2]$

「CF103E」Buying Sets-霍尔定理-网络流-最小权闭合子图
· ✏️ 975 words · ☕ 2 mins read

我们有 $n$ 个集合,第 $i$ 个集合有 $m_i$ 个数($1$ 到 $n$ 中的整数),权值为 $w_i$ 。

现在请你从中选出 $k$ ($k$ 为任意 $0$ 到 $n$ 中的整数)个集合,满足这 $k$ 个集合的并集的大小为 $k$ ,询问这 $k$ 个集合的权值和最小值。

保证从这 $n$ 选出任意 $x$ 个集合,他们的并集大小不小于 $k$ 。