#D1017. 噪音阻隔
噪音阻隔
题目背景
给一棵树,每个点有三种类型之一: ,最少删多少边使得每个连通块中不会同时存在 和 ?
题目描述
格兰芬多学院的宿舍可以用一棵树来表示,树上有 个顶点,每个顶点代表一个房间,房间里正好有一个学生。
今晚,有三种类型的学生:
- 想参加派对和玩音乐的学生(标记为 );
- 想睡觉和享受安静的学生(标记为 );
- 没有打算的学生(标记为 )。
最初,所有的墙都是薄墙,允许音乐通过,因此当参加派对的学生放音乐时,每个房间都能听到。但是,我们可以在任意边上放置厚墙阻隔音乐通过。
费尔奇希望安装一些厚墙,这样每个参加派对的学生都可以播放音乐,而睡觉的学生却不会被打扰。
请你计划一下最少需要使用的厚墙数量。
输入格式
第一行输入一个整数 ( ) 表示树上顶点的数量。
第二行输入 个整数 ,表示 和 之间存在一条边。
第三行输入一个长度 的字符串 ,由三种字符组成,表示每个顶点的类型。
输出格式
输出一个整数表示所需的最小厚壁数量。
输入输出样例 #1
输入 #1
4
1 2 2
PCSS
输出 #1
1
输入输出样例 #2
输入 #2
4
1 2 2
PPSS
输出 #2
2