CF526G Spiders Evil Plan

题目描述

蜘蛛是 Om Nom 的老对手。它们和他一样喜欢吃糖果,这就是为什么它们总是试图阻止这只怪物靠近他最喜欢的糖果。现在,它们想出了一个邪恶的计划来陷害 Om Nom。 设想有一个由 $n$ 个结点组成的绳索结构,这 $n$ 个结点通过 $n-1$ 根绳索连接起来。该结构是连通的,因此这些绳索和结点一起构成了一棵树。每根绳索都有一个与之相关的长度。现在,有一颗糖果被系在了结构中的结点 $x$ 上,Om Nom 非常想吃到这颗糖果。 这时有 $y$ 只蜘蛛想要阻止他。它们决定用蜘蛛网将糖果和部分结构缠绕起来,从而把糖果系在尽可能大的绳索结构上。 每只蜘蛛都能用蜘蛛网覆盖任意两个结点 $a$ 和 $b$ 之间路径上的所有绳索。因此,$y$ 只蜘蛛一共可以覆盖树上 $y$ 条路径的所有绳索。这 $y$ 条路径之间可以任意相交。蜘蛛们希望满足以下条件: - 包含糖果的结点至至少一根被网覆盖的绳索相邻。 - 所有被网覆盖的绳索必须构成一个连通结构(毕竟覆盖和糖果无关的绳索毫无意义)。 - 被网覆盖的绳索的总长度要尽可能大。 蜘蛛们还没决定将糖果系在哪个结点,也还没决定将由几只蜘蛛来缠绕结构,于是它们请你帮忙计算多组 $x$ 和 $y$ 的最优方案。 请你帮助蜘蛛们,计算出多组 $x$、$y$ 的最优覆盖方案。

输入格式

第一行包含两个整数 $n$ 和 $q$($1\leq n, q\leq 10^5$),表示结构中的结点数和问题数。 接下来的 $n-1$ 行描述了绳索结构,第 $i$ 行包含三个整数 $u_i, v_i, l_i$($1\leq u_i, v_i\leq n$,$u_i\neq v_i$,$1\leq l_i\leq 1000$),表示结点 $u_i$ 与结点 $v_i$ 之间有一根长度为 $l_i$ 的绳索。 接下来 $q$ 行描述了蜘蛛们的问题。由于它们要求你在线回答问题,所以它们用特殊方式对消息进行了编码。 接下来每一行包含两个整数 $x_i, y_i$。蜘蛛们的第一个问题中 $x = x_1, y = y_1$。 对于第 $i$($2\leq i\leq q$)次提问,$x, y$ 的取值需要使用如下公式计算: \[ x_i = ((x_{i-1} + Ans_{i-1}) \mod n) + 1 \] \[ y_i = ((y_{i-1} + Ans_{i-1}) \mod n) + 1 \] 其中 $Ans_{i-1}$ 是你对第 $i-1$ 个问题所求得的最优覆盖方案的被覆盖绳索总长度。 保证有 $1\leq x_i, y_i \leq n$。

输出格式

对于每一个问题,每行输出一个整数 $Ans_i$,表示对应最优方案下被网覆盖的绳索总长度。

说明/提示

由 ChatGPT 5 翻译