树上计数2
树上莫队通过将树转化成DFS序(欧拉序)来解决问题。这道题目跟“HH的项链”很像,考虑树上莫队
首先对树做出一个欧拉序,得到每个点在欧拉序中第一次出现的位置in[x]
和第二次出现的位置out[x]
;如果某个询问的in[x]
比in[y]
大,那么交换in[x]
比in[y]
小
如果in[x]
到in[y]
中出现了一次的数就是树上out[x]
到in[y]
中出现了一次的数加上
统计的时候,记录两个数组,cnt
和st
,前者表示每种颜色出现的次数(只记录出现一次的数的颜色),后者表示一个数出现的次数(如果出现了两次或者没有出现,那么他所代表的颜色不会计数),剩下的见打卡代码
OI-wiki上好像还有直接在树上做莫队的,有空了学一下
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!