CF1859F.Teleportation in Byteland

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

There are nn cities in Byteland, some of which are connected by roads, which can be traversed in any direction. The ii -th road has its own hardness parameter wiw_i . Time spent on traversing a road with its hardness equal to wiw_i is wic\lceil\frac{w_i}{c}\rceil , where cc is the current driving skill.

The travel network of Byteland is a tree. In other words, between any pair of cities, there is exactly one path that passes through each city at most once.

In some cities you can visit driving courses. A single course takes TT time to complete, and after completing the course the driver's skill cc is increased by 22 times. Notice that the time TT required to complete a course is the same in all cities, and courses can be completed in the same city more than once.

You need to answer the qq queries: what is the minimum time it takes to get from the city aa to city bb if you start the travelling with driving skill c=1c = 1 ?

输入格式

Each test contains multiple test cases. The first line contains a single integer tt ( 1t1041 \le t \le 10^4 ) — the number of test cases. The description of the test cases follows.

The first line of each test case contains two integers nn and TT ( 1n105,1T1061 \le n \le 10^5, 1 \le T \le 10^6 ) - the number of cities and time required to complete a single driving course.

The following n1n - 1 lines each contain three integers uiu_i , viv_i and wiw_i ( 1ui,vin,1wi106,uivi1 \le u_i, v_i \le n, 1 \le w_i \le 10^6, u_i \neq v_i ), which mean that there exists a road connecting towns uiu_i and viv_i with hardness equal to wiw_i .

The next line contains a binary string ss of length nn , consisting only of symbols 00 and 11 . If si=1s_i = 1 ( 1in1 \le i \le n ), then you can visit driving courses in the ii -th city. If si=0s_i = 0 ( 1in1 \le i \le n ), then you cannot visit driving courses in the ii -th city.

The next line contains a single integer qq ( 1q1051 \le q \le 10^5 ) — the number of queries you are required to answer.

The next qq lines contain two integers aja_j , bjb_j ( 1aj,bjn,1jq1 \le a_j, b_j \le n, 1 \le j \le q ) — the cities you are required to process in the jj -th query.

It is guaranteed that the given graph is a tree. It is guaranteed that the sum of nn and the sum of qq over all test cases does not exceed 10510^5 .

输出格式

For each query, print one integer in a separate line — the minimum time it takes to get in the corresponding query.

输入输出样例

  • 输入#1

    2
    2 3
    1 2 1
    11
    1
    1 2
    5 3
    1 4 5
    1 3 8
    2 3 8
    4 5 10
    11001
    5
    1 5
    2 5
    5 1
    3 4
    4 2

    输出#1

    1
    11
    14
    11
    13
    15

说明/提示

In the only query of the first test case, it is optimal to ignore the driving courses. Then the minimum time required is equal to the distance between vertexes 11 and 22 , which is 11 .

In the first query of the second test case, we can spend 33 time in city number 11 visiting the driving courses, then go to vertex 55 . Then the minimum time required is 3+52+102=113 + \lceil\frac{5}{2}\rceil + \lceil\frac{10}{2}\rceil = 11 .

首页