P8339题解
由于每种颜色的钥匙至多有5把,我们可以提前找出能匹配的钥匙和箱子对,这里的能匹配是指如果一个箱子和一把钥匙之间还有一把未配对的钥匙,则让箱子和中间的那把钥匙配对,因为若按原来的匹配,能包含这个匹配的查询一定能包含新的匹配。求出所有匹配的过程类似处理树上括号序列,但是对于每种颜色的每把钥匙,直接在原树上跑会超时,可以把同种颜色的点作为关键点建立虚树,在虚树上处理即可保证复杂度。
对于一把钥匙
一棵子树内的点的dfs序是连续的,把
由于每种颜色的钥匙至多有5把,我们可以提前找出能匹配的钥匙和箱子对,这里的能匹配是指如果一个箱子和一把钥匙之间还有一把未配对的钥匙,则让箱子和中间的那把钥匙配对,因为若按原来的匹配,能包含这个匹配的查询一定能包含新的匹配。求出所有匹配的过程类似处理树上括号序列,但是对于每种颜色的每把钥匙,直接在原树上跑会超时,可以把同种颜色的点作为关键点建立虚树,在虚树上处理即可保证复杂度。
对于一把钥匙
一棵子树内的点的dfs序是连续的,把