C. 路径二进制计数
路径二进制计数
春招模拟赛第十场|协程|2023.04.15研发岗笔试
- Status
- Done
- Rule
- IOI
- Problem
- 4
- Start at
- 2023-4-24 19:00
- End at
- 2023-4-24 21:00
- Duration
- 2 hour(s)
- Host
- Partic.
- 41
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.
n≤1000,从每个起点沿树 DFS 不回头,维护当前二进制值。走过至少一条边后,若值落在 [l,r] 中则计数。值已超过 r 且为正时可以剪枝。
时间复杂度 O(n2),空间复杂度 O(n)。
一棵 n 个站点的通信树,每个站点标记为 0 或 1。沿一条至少包含一条边的路径,把沿途标记从起点到终点看成一个二进制数(起点为最高位)。需要统计有多少条有向路径,其数值落在闭区间 [l,r] 内,用于评估链路编码覆盖范围。
单独一个站点不构成合法路径。
约束:1≤n≤1000,1≤l≤r≤100000000000000。
第一行三个正整数 n l r。
第二行一个长度为 n 的 01 串,第 i 个字符是节点 i 的权值。
接下来 n−1 行,每行两个正整数 u v 表示树边。
输出一个整数,表示合法有向路径的条数。
输入
3 1 10
101
1 2
2 3
输出
6
说明
按题意模拟计算得到。
输入
2 1 1
10
1 2
输出
1
说明
按题意模拟计算得到。
输入
4 3 8
1110
1 2
1 3
3 4
输出
9
说明
按题意模拟计算得到。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册