B. 第K大红色连通块

第K大红色连通块

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目内容

在一个社交网络中,有 nn 个用户,他们的好友关系构成一棵树。每个用户当前有两种状态之一:红色(用字符 R 表示)或白色(用字符 W 表示)。如果两个相邻的用户状态均为红色,则他们属于同一个红色连通块。请你找出所有红色连通块中,第 kk 大的连通块包含多少个用户。

数据范围:用户总数 nn 不超过 10510^5,参数 kk 满足 1≤k≤n1 \le k \le n。

输入描述

第一行包含两个正整数 nn 和 kk。 第二行包含一个长度为 nn 的字符串,仅由字符 R 和 W 组成,其中第 ii 个字符表示第 ii 个用户的状态。 接下来的 n−1n-1 行,每行包含两个正整数 uu 和 vv,表示用户 uu 和用户 vv 之间存在一条好友边。数据保证这些边组成一棵树,且 1≤u,v≤n1 \le u, v \le n。

输出描述

输出一个整数。如果红色连通块的数量小于 kk,输出 −1-1;否则输出第 kk 大的红色连通块包含的用户数量(大小相同的连通块各自独立计数)。

样例1

输入

5 2
RRFRF
1 2
2 3
3 4
4 5

输出

1

说明

用户状态依次为 R, R, F, R, F。好友关系构成一条链 1−2−3−4−51-2-3-4-5。相邻且状态相同的用户进行合并:11 和 22 均为 R,合并为一个大小 22 的分组;33 为 F,单独一组;44 为 R,单独一组;55 为 F,单独一组。根据题解代码逻辑,只统计状态为 R 的分组,得到大小列表 [2,1][2, 1]。升序排序后为 [1,2][1, 2],第 k=2k=2 大的元素为 11,故输出 1。

样例2

输入

4 3
RFRF
1 2
2 3
3 4

输出

-1

说明

用户状态为 R, F, R, F,相邻用户状态均不同,因此每个用户都是一个独立的分组。其中状态为 R 的分组有 22 个(大小均为 11)。同状态分组的数量 22 小于 k=3k=3,根据题意输出 −1-1。

样例3

输入

1 1
R

输出

1

说明

网络中只有 11 个用户,状态为 R。该用户单独构成一个大小为 11 的同状态分组。分组数量为 11,k=1k=1 时第 11 大的分组大小即为 11。

春招模拟赛第十七场|小红📕|2023.4.23

Not Attended
Status
Done
Rule
IOI
Problem
3
Start at
2023-5-7 19:00
End at
2023-5-7 20:18
Duration
1.3 hour(s)
Host
Partic.
33