题库/S0095

#S0095. 【18NOIP提高组】保卫王国

    传统题 难度: 省选 标签>一本通选或不选的树形DP倍增与二进制分解倍增LCA求解路线
时间限制2000 ms
内存限制512 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

S0095 · 【18NOIP提高组】保卫王国

退出在线编程模式
省选 读懂题意,让每一次思考成为成长。
时间限制2000 ms
内存限制512 MiB
通过率—0 / 0 次提交

题目描述

Z 国有nn座城市,n−1n − 1条双向道路,每条双向道路连接两座城市,且任意两座城市都能通过若干条道路相互到达。 Z 国的国防部长小 Z 要在城市中驻扎军队。驻扎军队需要满足如下几个条件: ⚫一座城市可以驻扎一支军队,也可以不驻扎军队。 ⚫由道路直接连接的两座城市中至少要有一座城市驻扎军队。 ⚫在城市里驻扎军队会产生花费,在编号为i的城市中驻扎军队的花费是pip_i。 小 Z 很快就规划出了一种驻扎军队的方案,使总花费最小。但是国王又给小 Z 提出了mm个要求,每个要求规定了其中两座城市是否驻扎军队。小 Z 需要针对每个要求逐一给出回答。具体而言,如果国王提出的第jj个要求能够满足上述驻扎条件(不需要考虑第 jj  个要求之外的其它要求),则需要给出在此要求前提下驻扎军队的最小开销。如果国王提出的第jj个要求无法满足,则需要输出−1(1≤j≤m)-1 (1 ≤ j ≤ m)。现在请你来帮助小 Z。

输入

第 11 行包含两个正整数nn, mm和一个字符串typetype,分别表示城市数、要求数和数据类型。typetype是一个由大写字母 AA,BB 或 CC 和一个数字 1,2,31,2,3 组成的字符串。它可以帮助你获得部分分。你可能不需要用到这个参数。这个参数的含义在【数据规模与约定】中有具体的描述。 第22行nn个整数pip_i,表示编号ii的城市中驻扎军队的花费。 接下来n−1n − 1行,每行两个正整数u,vu, v,表示有一条uu到vv的双向道路。 接下来mm行,第jj行四个整数a,x,b,y(a≠b)a, x, b, y(a ≠ b),表示第j个要求是在城市aa驻扎xx支军队,在城市bb驻扎yy支军队。其中,x  、 y  的取值只有 00 或 11:若 xx 为 00,表示城市 aa 不得驻扎军队,若 xx 为 11,表示城市 aa 必须驻扎军队;若 yy 为 00,表示城市 bb 不得驻扎军队,若 yy 为 11,表示城市 bb 必须驻扎军队。 输入中每一行相邻的两个数据之间均用一个空格分隔。

输出

输出共mm行,每行包含 11  个整数,第jj行表示在满足国王第jj个要求时的最小开销,如果无法满足国王的第jj个要求,则该行输出−1-1。

输入样例

5 3 C3
2 4 1 3 9
1 5
5 2
5 3
3 4
1 0 3 0
2 1 3 1
1 0 5 0

输出样例

12
7
-1

提示

【样例解释】 对于第一个要求,在 44 号和 55 号城市驻扎军队时开销最小。 对于第二个要求,在 11 号、22 号、33 号城市驻扎军队时开销最小。 第三个要求是无法满足的,因为在 11 号、55 号城市都不驻扎军队就意味着由道路直接连接的两座城市中都没有驻扎军队。 【输入输出样例2】 数据样例2 【数据规模与约定】 对于100%的数据,n,m≤300000,1≤pi≤100000n,m≤300000,1≤p_i≤100000。

测试点编号$type$$n=$$m=$
$1\sim 2$$A3$$10$$10$
$3\sim 4$$C3$
$5\sim 6$$A3$$100$$100$
$7$$C3$
$8\sim 9$$A3$$2000$$2000$
$10\sim 11$$C3$
$12\sim 13$$A1$$100000$$100000$
$14\sim 16$$A2$
$17$$A3$
$18\sim 19$$B1$
$20\sim 21$$C1$
$22$$C2$
$23\sim 25$$C3$
数据类型的含义: A:城市$i$与城市$i + 1$直接相连。 B:任意城市与城市 $1$ 的距离不超过 $100$(距离定义为最短路径上边的数量),即如果这棵树以 $1$ 号城市为根,深度不超过 $100$。 C:在树的形态上无特殊约束。 1:询问时保证$a = 1, x = 1$,即要求在城市 $1$ 驻军。对$b, y$没有限制。 2:询问时保证$a, b$是相邻的(由一条道路直接连通) 3:在询问上无特殊约束。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共6个测试点,非原站或官方原始数据。总分100分。