AT_arc048_d.[ARC048D] たこ焼き屋とQ人の高橋君

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

AtCoder 市有 11 到 NN 编号的 NN 个城镇,这些城镇通过 N−1N-1 条双向、距离为 11 的道路相连。任意两个城镇之间都可以通过若干道路到达。

AtCoder 市里有 QQ 个高桥君,第 ii 个高桥君想从城镇 sis_i 前往城镇 tit_i。

AtCoder 市的部分城镇设有章鱼烧店。所有高桥君初始以每 22 秒走 11 距离的速度行走,但如果在某个有章鱼烧店的城镇吃了章鱼烧,之后的行走速度会变为每 11 秒走 11 距离。每位高桥君只能吃一次章鱼烧,且可以选择经过有章鱼烧店的城镇时不吃章鱼烧,也可以不吃章鱼烧直接到达 tit_i。

给定 AtCoder 市的城镇连接关系,请你求出对于每个高桥君,从 sis_i 到 tit_i 最优行动下所需的最短时间。吃章鱼烧所需时间可忽略不计。

输入格式

输入通过标准输入给出,格式如下:

NN QQ
A1A_1 B1B_1
A2A_2 B2B_2
⋮\vdots
AN−1A_{N-1} BN−1B_{N-1}
SS
s1s_1 t1t_1
s2s_2 t2t_2
⋮\vdots
sQs_Q tQt_Q

  • 第 11 行包含两个整数 N (1≤N≤100000)N\ (1 \leq N \leq 100000) 和 Q (1≤Q≤100000)Q\ (1 \leq Q \leq 100000),以空格分隔。
  • 接下来 N−1N-1 行,每行包含两个整数 Ai,Bi (1≤Ai≤N,1≤Bi≤N,Ai≠Bi)A_i, B_i\ (1 \leq A_i \leq N, 1 \leq B_i \leq N, A_i \neq B_i),表示城镇 AiA_i 和城镇 BiB_i 之间有一条道路。
  • 接下来一行是长度为 NN 的仅由 00 和 11 组成的字符串 SS。第 ii 个字符为 00 表示城镇 ii 没有章鱼烧店,为 11 表示有章鱼烧店。
  • 接下来 QQ 行,每行包含两个整数 si,ti (1≤si≤N,1≤ti≤N)s_i, t_i\ (1 \leq s_i \leq N, 1 \leq t_i \leq N),表示第 ii 个高桥君的起点和终点。

输出格式

输出 QQ 行。

第 ii 行输出第 ii 个高桥君最优行动下从 sis_i 到 tit_i 所需的最短时间。

输出末尾请不要忘记换行。

输入输出样例

  • 输入#1

    7 4
    1 2
    2 3
    2 4
    4 5
    5 6
    6 7
    0010000
    1 5
    1 7
    6 1
    3 3

    输出#1

    6
    9
    8
    0
  • 输入#2

    5 2
    3 2
    2 4
    1 4
    2 5
    00000
    1 5
    2 3

    输出#2

    6
    2
  • 输入#3

    12 10
    1 2
    2 3
    2 4
    10 12
    1 5
    3 11
    5 6
    9 10
    5 7
    3 9
    8 7
    000100100010
    1 2
    1 4
    8 3
    6 12
    12 8
    8 12
    6 8
    8 6
    1 12
    5 12

    输出#3

    2
    4
    6
    11
    14
    9
    5
    4
    9
    9

说明/提示

样例解释 1

对于第一个询问,依次经过城镇 1,2,4,51,2,4,5 是最优方案。对于第二个询问,依次经过城镇 1,2,3,2,4,5,6,71,2,3,2,4,5,6,7,并在途中经过城镇 33 的章鱼烧店时吃章鱼烧,是最优方案。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页