3218 问题 D: 蓝桥杯2024年第十五届省赛真题-零食采购

时间限制: 1s 内存限制: 256MB 提交: 1928 解决: 314
题目描述
小蓝准备去星际旅行,出发前想在本星系采购一些零食,星系内有 n 颗星球,由 n − 1 条航路连接为连通图,第 i 颗星球卖第 ci 种零食特产。小蓝想出了 q 个采购方案,第 i 个方案的起点为星球 si ,终点为星球 ti ,对于每种采购方案,小蓝将从起点走最短的航路到终点,并且可以购买所有经过的星球上的零食(包括起点终点),请计算每种采购方案最多能买多少种不同的零食。
输入

输入的第一行包含两个正整数 n, q ,用一个空格分隔。

第二行包含 n 个整数 c1, c2, · · · , cn ,相邻整数之间使用一个空格分隔。

接下来 n − 1 行,第 i 行包含两个整数 ui, vi ,用一个空格分隔,表示一条航路将星球 ui 与 vi 相连。接下来 q 行,第 i 行包含两个整数 si, ti ,用一个空格分隔,表示一个采购方案。

输出
输出 q 行,每行包含一个整数,依次表示每个采购方案的答案。
样例输入
4 2
1 2 3 1
1 2
1 3
2 4
4 3
1 4
样例输出
3
2
提示

【样例说明】

第一个方案路线为 {4, 2, 1, 3} ,可以买到第 1, 2, 3 种零食;第二个方案路线为 {1, 2, 4} ,可以买到第 1, 2 种零食。

【评测用例规模与约定】

对于 20% 的评测用例,1 ≤ n, q ≤ 5000 ;对于所有评测用例,1 ≤ n, q ≤ 105,1 ≤ ci ≤ 20,1 ≤ ui, vi ≤ n,1 ≤ si, ti ≤ n。

#include<stdio.h>
int main()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

比赛公告

请基地所有同学们认真做题,以后会每天发布一套蓝桥杯历年真题。积极备赛,争取省一。加油!