dfs求出每个点的深度,并用in、out数组记录该点 管辖的节点范围(in[x]和out[x]之间的数都是x节点所管辖的内容)
从而实现 以深度 为主要因素,以 字母类型为次要因素 把所有节点的内容分类记录在cal[depth][27]数组里 (hash思想)
对于每次查询 ,x,h 先判断 depth[x]是否大于等于h 若大于,则yes
若小于,则 在cal[h]的【1-27】里遍历,寻找是否有 in[x]--out[x]之间的点,有则二分得到个数,判断奇偶,因为要形成回文串,只要奇数个数不超过一就可以了
【其他|Codeforces Round #316 (Div. 2)-D. Tree Requests-DFS+二分+hash】
#include
#include
#include
#include
#include
#include
#include
#include
推荐阅读
- 其他|有趣的10个CMD命令
- 其他|清理C盘内存(电脑C盘飘红了,那么如何清理垃圾文件,总结几种亲测方案)
- 其他|如何复制百度文库中的内容
- 谈谈base中遇到的坑点 及 其他
- 二分|CodeForces_1355E Restorer Distance(三分)
- 用VS Code画uml
- Mac 安装Android Studio3.0安装和卸载总结
- 二分|二分-牛客寒假集训营5-B-牛牛战队的比赛地
- 其他|c++读取TXT文件内容
- #|Codeforces Round #532 (Div. 2) E. Andrew and Taxi(二分+拓扑排序)