当前位置: 首页 > 网络知识

[luoguP2486] [SDOI2011]染色(树链剖分)

时间:2026-01-29 09:38:06

传送门

就是个模板啦

记录每一个点的左端点颜色和右端点颜色和当前端点颜色段数。

合并时如果左孩子右端点和右孩子左端点不同就ans

在重链上跳的时候别忘记统计一下

——代码

#include <cstdio> #include <cstring> #include <iostream> #define N 001 #define ls now << 1 #define rs now << 1 | 1 #define swap(x, y) ((x) ^= (y) ^= (x) ^= (y)) #define pushup(now) Lcol[now] = Lcol[ls], Rcol[now] = Rcol[rs], col[now] = col[ls] + col[rs] (Rcol[ls] == Lcol[rs]) int n, m, cnt, tim; int head[N], to[N << 1], next[N << 1]; int a[N], f[N], deep[N], size[N], son[N], tid[N], top[N], rank[N], L[N], R[N], Lcol[N], Rcol[N], col[N], laz[N]; inline int read() inline void add(int x, int y) inline void dfs1(int u) } } inline void dfs2(int u, int t) } inline void build(int now, int l, int r) int mid = (l + r) >> 1; build(ls, l, mid); build(rs, mid + 1, r); pushup(now); } inline void pushdown(int now) } inline void update(int now, int l, int r, int z) pushdown(now); int mid = (L[now] + R[now]) >> 1; if(l <= mid) update(ls, l, r, z); if(mid < r) update(rs, l, r, z); pushup(now); } inline void q_update(int u, int v, int z) if(deep[u] > deep[v]) swap(u, v); update(1, tid[u], tid[v], z); } inline int q_color(int now, int x) inline int query(int now, int l, int r) inline int q_query(int u, int v) if(deep[u] > deep[v]) swap(u, v); ans += query(1, tid[u], tid[v]); return ans; } int main() dfs1(1); dfs2(1, 1); build(1, 1, n); for(i = 1; i <= m; i++) else printf("%d\n", q_query(x, y)); } return 0; }

  



上一篇:[luoguP1072] Hankson 的趣味题(数论)
下一篇:[luoguP1417] 烹调方案(背包DP)
树链剖分
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素