CF1280D.Miss Punyverse

省选/NOI-

通过率:0%

时间限制:4.00s

内存限制:512MB

AC君温馨提醒

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

题目描述

The Oak has nn nesting places, numbered with integers from 11 to nn. Nesting place ii is home to bib_i bees and wiw_i wasps.

Some nesting places are connected by branches. We call two nesting places adjacent if there exists a branch between them. A simple path from nesting place xx to yy is given by a sequence s0,…,sps_0, \ldots, s_p of distinct nesting places, where pp is a non-negative integer, s0=xs_0 = x, sp=ys_p = y, and si−1s_{i-1} and sis_{i} are adjacent for each i=1,…,pi = 1, \ldots, p. The branches of The Oak are set up in such a way that for any two pairs of nesting places xx and yy, there exists a unique simple path from xx to yy. Because of this, biologists and computer scientists agree that The Oak is in fact, a tree.

A village is a nonempty set VV of nesting places such that for any two xx and yy in VV, there exists a simple path from xx to yy whose intermediate nesting places all lie in VV.

A set of villages P\cal P is called a partition if each of the nn nesting places is contained in exactly one of the villages in P\cal P. In other words, no two villages in P\cal P share any common nesting place, and altogether, they contain all nn nesting places.

The Oak holds its annual Miss Punyverse beauty pageant. The two contestants this year are Ugly Wasp and Pretty Bee. The winner of the beauty pageant is determined by voting, which we will now explain. Suppose P\mathcal{P} is a partition of the nesting places into mm villages V1,…,VmV_1, \ldots, V_m. There is a local election in each village. Each of the insects in this village vote for their favorite contestant. If there are strictly more votes for Ugly Wasp than Pretty Bee, then Ugly Wasp is said to win in that village. Otherwise, Pretty Bee wins. Whoever wins in the most number of villages wins.

As it always goes with these pageants, bees always vote for the bee (which is Pretty Bee this year) and wasps always vote for the wasp (which is Ugly Wasp this year). Unlike their general elections, no one abstains from voting for Miss Punyverse as everyone takes it very seriously.

Mayor Waspacito, and his assistant Alexwasp, wants Ugly Wasp to win. He has the power to choose how to partition The Oak into exactly mm villages. If he chooses the partition optimally, determine the maximum number of villages in which Ugly Wasp wins.

橡树有 nn 个巢穴,编号为 11 至 nn 的整数。巢穴 ii 中居住着 bib_i 只蜜蜂和 wiw_i 只黄蜂。

部分巢穴之间由枝条连接。若两个巢穴之间存在一条枝条,则称它们相邻。从巢穴 xx 到 yy 的一条简单路径定义为一个由互不相同的巢穴构成的序列 s0,…,sps_0, \ldots, s_p,其中 pp 是一个非负整数,满足 s0=xs_0 = x、sp=ys_p = y,且对每个 i=1,…,pi = 1, \ldots, p,si−1s_{i-1} 与 sis_i 相邻。橡树的枝条结构满足如下性质:对任意两个巢穴 xx 和 yy,均存在唯一一条从 xx 到 yy 的简单路径。正因如此,生物学家与计算机科学家一致认为,橡树实际上是一棵树。

一个村落(village)是指一个非空的巢穴集合 VV,使得对任意 x,y∈Vx, y \in V,均存在一条从 xx 到 yy 的简单路径,且该路径上所有中间巢穴(即除端点外的所有巢穴)均属于 VV。

一个村落集合 P\cal P 称为一个划分(partition),当且仅当全部 nn 个巢穴恰好属于 P\cal P 中的一个村落。换言之,P\cal P 中任意两个村落互不相交,且它们的并集恰好包含全部 nn 个巢穴。

橡树每年举办“微宇宙小姐”(Miss Punyverse)选美大赛。今年的两位参赛者是“丑陋黄蜂”(Ugly Wasp)与“漂亮蜜蜂”(Pretty Bee)。大赛获胜者通过投票决定,规则如下:设 P\mathcal{P} 是将全部巢穴划分为 mm 个村落 V1,…,VmV_1, \ldots, V_m 的一个划分。每个村落内举行一次地方选举,该村落内的所有昆虫为其最喜爱的参赛者投票。若“丑陋黄蜂”的得票数严格多于“漂亮蜜蜂”,则称“丑陋黄蜂”在该村落中获胜;否则,“漂亮蜜蜂”获胜。最终,在最多数量的村落中获胜者即为大赛总冠军。

正如往届大赛一样,蜜蜂总是投票给蜜蜂(即今年的“漂亮蜜蜂”),而黄蜂总是投票给黄蜂(即今年的“丑陋黄蜂”)。与常规大选不同的是,在“微宇宙小姐”大赛中,没有任何昆虫弃权——因为每个人都对此极为重视。

黄蜂市长瓦斯帕西托(Waspacito)及其助理亚历克斯黄蜂(Alexwasp)希望“丑陋黄蜂”获胜。他有权自主决定如何将橡树恰好划分为 mm 个村落。若他选择最优的划分方式,请确定“丑陋黄蜂”最多能在多少个村落中获胜。

输入格式

The first line of input contains a single integer tt (1≤t≤1001 \le t \le 100) denoting the number of test cases. The next lines contain descriptions of the test cases.

The first line of each test case contains two space-separated integers nn and mm (1≤m≤n≤30001 \le m \le n \le 3000). The second line contains nn space-separated integers b1,b2,…,bnb_1, b_2, \ldots, b_n (0≤bi≤1090 \le b_i \le 10^9). The third line contains nn space-separated integers w1,w2,…,wnw_1, w_2, \ldots, w_n (0≤wi≤1090 \le w_i \le 10^9). The next n−1n - 1 lines describe the pairs of adjacent nesting places. In particular, the ii-th of them contains two space-separated integers xix_i and yiy_i (1≤xi,yi≤n1 \le x_i, y_i \le n, xi≠yix_i \neq y_i) denoting the numbers of two adjacent nesting places. It is guaranteed that these pairs form a tree.

It is guaranteed that the sum of nn in a single file is at most 10510^5.

输入的第一行包含一个整数 tt(1≤t≤1001 \le t \le 100),表示测试用例的数量。接下来的若干行包含各测试用例的描述。

每个测试用例的第一行包含两个以空格分隔的整数 nn 和 mm(1≤m≤n≤30001 \le m \le n \le 3000)。第二行包含 nn 个以空格分隔的整数 b1,b2,…,bnb_1, b_2, \ldots, b_n(0≤bi≤1090 \le b_i \le 10^9)。第三行包含 nn 个以空格分隔的整数 w1,w2,…,wnw_1, w_2, \ldots, w_n(0≤wi≤1090 \le w_i \le 10^9)。接下来的 n−1n - 1 行描述相邻栖息地对。具体而言,其中第 ii 行包含两个以空格分隔的整数 xix_i 和 yiy_i(1≤xi,yi≤n1 \le x_i, y_i \le n,且 xi≠yix_i \neq y_i),表示两个相邻栖息地的编号。保证这些边构成一棵树。

保证单个输入文件中所有测试用例的 nn 值之和不超过 10510^5。

输出格式

For each test case, output a single line containing a single integer denoting the maximum number of villages in which Ugly Wasp wins, among all partitions of The Oak into mm villages.

对于每个测试用例,输出一行,包含一个整数,表示在将橡树村划分为 mm 个村庄的所有划分方案中,丑蜂获胜的村庄数量的最大值。

输入输出样例

  • 输入#1

    2
    4 3
    10 160 70 50
    70 111 111 0
    1 2
    2 3
    3 4
    2 1
    143 420
    214 349
    2 1

    输出#1

    2
    0

说明/提示

In the first test case, we need to partition the n=4n = 4 nesting places into m=3m = 3 villages. We can make Ugly Wasp win in 22 villages via the following partition: 1,2,3,4{{1, 2}, {3}, {4}}. In this partition,

  • Ugly Wasp wins in village 1,2{1, 2}, garnering 181181 votes as opposed to Pretty Bee's 170170;
  • Ugly Wasp also wins in village 3{3}, garnering 111111 votes as opposed to Pretty Bee's 7070;
  • Ugly Wasp loses in the village 4{4}, garnering 00 votes as opposed to Pretty Bee's 5050.

Thus, Ugly Wasp wins in 22 villages, and it can be shown that this is the maximum possible number.

In the second test case, we need to partition the n=2n = 2 nesting places into m=1m = 1 village. There is only one way to do this: 1,2{{1, 2}}. In this partition's sole village, Ugly Wasp gets 563563 votes, and Pretty Bee also gets 563563 votes. Ugly Wasp needs strictly more votes in order to win. Therefore, Ugly Wasp doesn't win in any village.

在第一个测试用例中,我们需要将 n=4n = 4 个巢穴划分为 m=3m = 3 个村庄。我们可以通过如下划分使丑蜂(Ugly Wasp)在 22 个村庄中获胜:{{1,2},{3},{4}}\{\{1, 2\}, \{3\}, \{4\}\}。在此划分下:

  • 丑蜂在村庄 {1,2}\{1, 2\} 中获胜,获得 181181 票,而美蜂(Pretty Bee)获得 170170 票;
  • 丑蜂在村庄 {3}\{3\} 中也获胜,获得 111111 票,而美蜂获得 7070 票;
  • 丑蜂在村庄 {4}\{4\} 中落败,获得 00 票,而美蜂获得 5050 票。

因此,丑蜂在 22 个村庄中获胜,且可以证明这是可能达到的最大值。

在第二个测试用例中,我们需要将 n=2n = 2 个巢穴划分为 m=1m = 1 个村庄。仅存在一种划分方式:{{1,2}}\{\{1, 2\}\}。在此划分的唯一村庄中,丑蜂获得 563563 票,美蜂也获得 563563 票。丑蜂需获得严格更多的票数才能获胜。因此,丑蜂在任何村庄中均未获胜。

输入解题思路,AI测评打分。不知道怎么写?

首页