luogu#P9132. [USACO23FEB] Watching Cowflix P

[USACO23FEB] Watching Cowflix P

题目描述

Note: The time limit for this problem is 3s, 1.5x the default.

Bessie likes to watch shows on Cowflix, and she watches them in different places. Farmer John's farm can be represented as a tree with N(2N2105)N(2 \le N \le 2 \cdot 10^5) nodes, and for each node, either Bessie watches Cowflix there or she doesn't. It is guaranteed that Bessie watches Cowflix in at least one node.

Unfortunately, Cowflix is introducing a new subscription model to combat password sharing. In their new model, you can choose a connected component of size dd in the farm, and then you need to pay d+kd+k moonies for an account that you can use in that connected component. Formally, you need to choose a set of disjoint connected components c1,c2,,cCc_1,c_2, \cdots ,c_C so that every node where Bessie watches Cowflix must be contained within some cic_i. The cost of the set of components is i=1C(ci+k)\sum\limits^{C}_{i=1}(|c_i|+k), where ci|c_i| is the number of nodes in component cic_i. Nodes where Bessie does not watch Cowflix do not have to be in any cic_i.

Bessie is worried that the new subscription model may be too expensive for her given all the places she visits and is thinking of switching to Mooloo. To aid her decision-making, calculate the minimum amount she would need to pay to Cowflix to maintain her viewing habits. Because Cowflix has not announced the value of kk, calculate it for all integer values of kk from 11 to NN.

输入格式

The first line contains NN.

The second line contains a bit string s1s2s3sNs_1s_2s_3\cdots s_N where si=1s_i=1 if Bessie watches Cowflix at node ii.

Then N1N - 1 lines follow, each containing two integers aa and b(1a,bN)b (1 \le a,b \le N), which denotes an edge between aa and bb in the tree.

输出格式

The answers for each kk from 11 to NN on separate lines.

题目大意

Bessie 喜欢在 Cowflix 上看节目,并且喜欢在农场里的不同地方看。

Farmer John 的农场可以被描述成一颗 nn 个节点的树,并且 Bessie 只可能在树上的一些指定的节点处看节目。每个节点是否要看节目将在初始时给定;保证至少在一个节点处会看节目。

不幸的是,Cowflix 为了避免奶牛们使用公用账号,采取了一个新的会员策略:

  • Bessie 将多次付款,每次选择树上任意一个大小为 dd连通块,为其支付 d+kd+k 的代价,才能够在这些位置看节目。

换言之,Bessie 将选取若干连通块 c1,c2,,cCc_1,c_2,\dots,c_C,支付 i=1C(ci+k)\sum_{i=1}^C(|c_i|+k) 的代价,才可以在这些连通块的各个节点处看节目;即,被指定的节点必须被某个连通块包含,不被指定的节点不必被包含

Bessie 觉得这个策略的代价太昂贵了,考虑是否要改在 Mooloo 上看节目。为了帮助其决策,你应当告诉之 kk 取遍 1n1\sim n 时看节目的最小总代价。

1n2×1051\le n\le2\times10^5

5
10001
1 2
2 3
3 4
4 5
4
6
8
9
10
7
0001010
7 4
5 6
7 2
5 1
6 3
2 5
4
6
8
9
10
11
12

提示

Explanation for Sample 1

For k3k \le 3, it's optimal to have two accounts: c1={1},c2={5}c_1=\{1\},c_2=\{5\}. For k3k \ge 3, it's optimal to have one account: c1={1,2,3,4,5}c_1=\{1,2,3,4,5\}.

SCORING

  • Inputs 353-5: N5000N \le 5000
  • Inputs 686-8: ii is connected to i+1i+1 for all i[1,N)i \in [1,N).
  • Inputs 9199-19: N105N \le 10^5
  • Inputs 202420-24: No additional constraints.