CF1000G.Two-Paths
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a weighted tree (undirected connected graph with no cycles, loops or multiple edges) with n vertices. The edge {uj,vj} has weight wj . Also each vertex i has its own value ai assigned to it.
Let's call a path starting in vertex u and ending in vertex v , where each edge can appear no more than twice (regardless of direction), a 2-path. Vertices can appear in the 2-path multiple times (even start and end vertices).
For some 2-path p profit Pr(p)=v∈distinct vertices in p∑av−e∈distinct edges in p∑ke⋅we , where ke is the number of times edge e appears in p . That is, vertices are counted once, but edges are counted the number of times they appear in p .
You are about to answer m queries. Each query is a pair of vertices (qu,qv) . For each query find 2-path p from qu to qv with maximal profit Pr(p) .
输入格式
The first line contains two integers n and q ( 2≤n≤3⋅105 , 1≤q≤4⋅105 ) — the number of vertices in the tree and the number of queries.
The second line contains n space-separated integers a1,a2,…,an (1≤ai≤109) — the values of the vertices.
Next n−1 lines contain descriptions of edges: each line contains three space separated integers ui , vi and wi ( 1≤ui,vi≤n , ui=vi , 1≤wi≤109 ) — there is edge {ui,vi} with weight wi in the tree.
Next q lines contain queries (one per line). Each query contains two integers qui and qvi (1≤qui,qvi≤n) — endpoints of the 2-path you need to find.
输出格式
For each query print one integer per line — maximal profit Pr(p) of the some 2-path p with the corresponding endpoints.
输入输出样例
输入#1
7 6 6 5 5 3 2 1 2 1 2 2 2 3 2 2 4 1 4 5 1 6 4 2 7 3 25 1 1 4 4 5 6 6 4 3 4 3 7
输出#1
9 9 9 8 12 -14
说明/提示
Explanation of queries:
- (1,1) — one of the optimal 2-paths is the following: 1→2→4→5→4→2→3→2→1 . Pr(p)=(a1+a2+a3+a4+a5)−(2⋅w(1,2)+2⋅w(2,3)+2⋅w(2,4)+2⋅w(4,5))=21−2⋅12=9 .
- (4,4) : 4→2→1→2→3→2→4 . Pr(p)=(a1+a2+a3+a4)−2⋅(w(1,2)+w(2,3)+w(2,4))=19−2⋅10=9 .
- (5,6) : 5→4→2→3→2→1→2→4→6 .
- (6,4) : 6→4→2→1→2→3→2→4 .
- (3,4) : 3→2→1→2→4 .
- (3,7) : 3→2→1→2→4→5→4→2→3→7 .