#P7201. [COCI2019-2020#1] Džumbus

    ID: 5850 Type: RemoteJudge 1000ms 500MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>动态规划,dp2019COCI

[COCI2019-2020#1] Džumbus

题目背景

Marin 是一个心地善良的人,因此他将为他的 NN 个朋友组织 QQ 次宴会。宴会上唯一的饮料被称为 džumbus

每位朋友对这种饮料的需求量是已知的。在这些朋友中,有 MM 组朋友。每一组中的两位在同时满足他们各自的需求量后,将开始互相核对自己对往届 COCI 题目的答案。

当朋友 AA 把自己的答案分享给朋友 BB 时,朋友 BB 可以决定是否要以相同的方式进行分享。然而,这 MM 组朋友不可能将 AA 分享给别人的答案重新分享给 AA

题目描述

Marin 为每一次宴会准备了不同单位量的 džumbus。在每次宴会的过程中,他想要使分享给别人答案至少一次的朋友数量最多。

你的任务是找到会与别人分享答案的朋友的最大数量。

输入格式

第一行包含题中所提到的两个整数 NNMM

第二行包含 NN 个整数,其中第 ii 个整数为 DiD_i,表示第 ii 个朋友对这种饮料的需求量。

接下来的 MM 行,每行包含两个整数 Ai,BiA_i,B_iAiBiA_i \neq B_i),表示第 ii 对朋友。

接下来的一行,包含整数 QQ

接下来的 QQ 行,每行包含一个整数 SiS_i 表示第 ii 次宴会的饮料总量。

输出格式

分别输出每次宴会的答案,即会与别人分享答案的朋友的最大数量。

每两次宴会的答案之间用换行符分开。

1 0
1000
1
1000
0
3 2
1 2 3
1 2
1 3
3
2
3
5
0
2
2
14 13
2 3 4 19 20 21 5 22 6 7 23 8 10 14
1 2
1 3
1 4
2 5
2 6
3 7
3 8
3 9
4 10
8 11
10 13
10 12
12 14
3
45
44
23
8
7
5

提示

样例解释

在第三个样例中的第一个宴会过程中,Marin 决定让编号为 1,2,3,7,9,10,12,131,2,3,7,9,10,12,13 的朋友达到各自的需求量。他们总共饮用了 4545 个单位的饮料。

如下图,建立一个无向图,用点来表示朋友,用边表示二者是否为一组。其中 exchange 表示两个朋友之间交换答案。

数据范围及约定

Subtask 分值 数据范围及约定 特殊性质
11 2020 M=N1,1Si1000M = N - 1, 1 \le S_i \le 1000 每位朋友最多只与两位其他朋友分享答案
22 3030 M=N1M = N - 1
33 N100N \le 100
44

对于 100%100\% 的数据,$0 \le M \lt N \le 1000, 1 \le Q \le 2 \times 10^5, 1 \le D_i \le 10^9, 1 \le S_i \le 10^9$。

说明

本题分值按 COCI 原题设置,满分 110110

题目译自 COCI2019-2020 CONTEST #1 T3 Džumbus