P3241 [HNOI2015]开店

    • 207通过
    • 827提交
  • 题目提供者 洛谷OnlineJudge
  • 评测方式 云端评测
  • 标签 分治 动态树 最近公共祖先,LCA 2015 湖南 高性能
  • 难度 NOI/NOI+/CTSC
  • 时空限制 3000ms / 512MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 最新讨论 显示

    推荐的相关题目 显示

    题目描述

    风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到人生哲学。最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱。

    这样的想法当然非常好啦,但是她们也发现她们面临着一个问题,那就是店开在哪里,面向什么样的人群。很神奇的是,幻想乡的地图是一个树形结构,幻想乡一共有 n个地方,编号为 $1$ 到 $n$ 被 $n-1$ 条带权的边连接起来。每个地方都住着一个妖怪,其中第 $i$ 个地方的妖怪年龄是 $x_i$ 。

    妖怪都是些比较喜欢安静的家伙,所以它们并不希望和很多妖怪相邻。所以这个树所有顶点的度数都小于或等于 $3$ 。妖怪和人一样,兴趣点随着年龄的变化自然就会变化,比如我们的 $18$ 岁少女幽香和八云紫就比较喜欢可爱的东西。幽香通过研究发现,基本上妖怪的兴趣只跟年龄有关,所以幽香打算选择一个地方 $u$ ( $u$ 为编号),然后在 $u$ 开一家面向年龄在 $L$ 到 $R$ 之间(即年龄大于等于 $L$ 小于等于 $R$ )的妖怪的店。

    也有可能 $u$ 这个地方离这些妖怪比较远,于是幽香就想要知道所有年龄在 $L$ 到 $R$ 之间的妖怪,到点 $u$ 的距离的和是多少(妖怪到 $u$ 的距离是该妖怪所在地方到 $u$ 的路径上的边的权之和),幽香把这个称为这个开店方案的方便值。

    幽香她们还没有决定要把店开在哪里,八云紫倒是准备了很多方案,于是幽香想要知道,对于每个方案,方便值是多少呢。

    输入输出格式

    输入格式:

    第一行三个用空格分开的数 $n,Q$ 和 $A$ ,表示树的大小、开店的方案个数和妖怪的年龄上限。

    第二行 $n$ 个用空格分开的数 $x_1,x_2,\ldots,x_n;x_i$ 表示第 $i$ 个地点妖怪的年龄,满足 $0\le x_i\lt A$ 。(年龄是可以为 $0$ 的,例如刚出生的妖怪的年龄为 $0$ 。)

    接下来 $n-1$ 行,每行三个用空格分开的数 $a$ 、 $b$ 、 $c$ ,表示树上的顶点 $a$ 和 $b$ 之间有一条权为 $c(1\le c\le1000)$ 的边, $a$ 和 $b$ 是顶点编号。

    接下来 $Q$ 行,每行三个用空格分开的数 $u,a,b$ 。

    对于这 $Q$ 行的每一行,用 $a,b,A$ 计算出 $L$ 和 $R$ ,表示询问”在地方 $u$ 开店,面向妖怪的年龄区间为 $[L,R]$ 的方案的方便值是多少“。

    对于其中第 $1$ 行, $L$ 和 $R$ 的计算方法为: $L=min(a$ % $A,b$ % $A),R=max(a$ % $A,b$ % $A)$ 。

    对于第 $2$ 到第 $Q$ 行,假设前一行得到的方便值为 $ans$ ,那么当前行的 $L$ 和 $R$ 计算方法为: $L=min((a+ans)$ % $A,(b+ans)$ % $A), R=max((a+ans)$ % $A,(b+ans)$ % $A)$ 。

    输出格式:

    对于每个方案,输出一行表示方便值。

    输入输出样例

    输入样例#1: 复制
    10 10 10
    0 0 7 2 1 4 7 7 7 9
    1 2 270
    2 3 217
    1 4 326
    2 5 361
    4 6 116
    3 7 38
    1 8 800
    6 9 210
    7 10 278
    8 9 8
    2 8 0
    9 3 1
    8 0 8
    4 2 7
    9 7 3
    4 7 0
    2 2 7
    3 2 1
    2 3 4
    输出样例#1: 复制
    1603 
    957 
    7161 
    9466 
    3232 
    5223 
    1879 
    1669 
    1282 
    0

    说明

    满足 $n\le1.5*10^5,Q\le2*10^5$ 。对于所有数据,满足 $A<=10^9$

    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。