小美有一个结点总数为 n 且根节点编号为 1 的有根树。
第 i 个结点的编号为 i ,所携带的字母为 ai。
小美是一名程序员,她认为一对 (u,v) 是好对,当且仅当从节点 u 到节点 v 的简单路径上依次拼接得到字符串 S 的子序列中不存在"BUG"。
给定一棵根节点为1的树,每个节点上有一个字母。进行q次询问,每次询问两个节点u和v,判断从u到v的路径上的字母序列是否存在子序列"BUG"。若存在则输出"NO",否则输出"YES"。
这题的核心是判断树中从节点 u
到节点 v
的路径上的字母序列是否包含子序列 "BUG"。为了高效处理多次询问,需要对树进行预处理,利用树链剖分将树分解为多条链,并预处理每条链的状态转移函数。通过最近公共祖先(LCA)算法快速定位路径,将路径分解为上行和下行部分,分别应用预处理的状态转移函数,判断是否形成 "BUG" 子序列。最终根据状态转移结果回答每次询问。