当前位置: 首页 > news >正文

别样的树上差分 LG15534 题解 【MYCOI R1】那猫猫城的集市

LG15534 【MYCOI R1】那猫猫城的集市

猫猫城有 \(n\) 个集市,有 \(n-1\) 条双向道路分别连接两个集市,使得任意两个集市可以经过若干条道路到达。每个集市售卖两种货物 \(a_u,b_u(a_u\neq b_u)\)

现在小咪计划了 \(Q\) 次旅行,每一次小咪会从集市 \(u\) 出发,沿最短路径前往集市 \(v\)。在途径一个集市时(包括 \(u,v\)),小咪会尝试进行交易。如果小咪拥有这个集市售卖的其中一种货物,小咪会将它换成集市中售卖的另一种货物,但如果没有则小咪保留他原来有的货物。

现在一开始小咪拥有一个货物,种类为 \(x\)。求旅行结束后小咪拥有的货物是哪种。

\(n,Q\leq 10^6,1\leq a,b\leq n,x\leq 10^9\)

官方题解链接,写得很详细很推荐,这里只是简单记下笔记。

假设节点 \(u\) 的父亲为 \(fa(u)\),则原路径经过点,同时每个点都考虑交换

\[u\to fa(u)\to fa(fa(u))\to\cdots lca\to \cdots\to fa(v)\to v \]

这其实等价于路径

\[[u\to \cdots \to root]\to [root\to \cdots lca]\to [fa(lca)\to\cdots\to root]\to [root\to \cdots\ to v] \]

为啥,应为对于一种货物 \(x\),他经过两次同一个节点后,\(x\) 值不变,那么这个路径中相邻且相同的节点就可以被忽略掉,最后等价于原路径。

这样我们求每种货物 \(x\) 从某个节点到根节点变成什么,和从根节点到某个节点变成什么即可。具体实现可以见代码。

#include <bits/stdc++.h>using namespace std;typedef long long ll;
typedef array<int,2>ttfa;
const int N=1000006;
const ll INF=0x3f3f3f3f3f3f3f3f;int n,T;
ttfa a[N];
vector<int>tar[N];//tar 原树int siz[N],dep[N],fat[N],son[N],tps[N];
void dfs1(int u,int f){siz[u]=1;fat[u]=f;dep[u]=dep[f]+1;for(auto v:tar[u]){if(v==f)continue;dfs1(v,u);siz[u]+=siz[v];if(siz[v]>siz[son[u]])son[u]=v;}
}
void dfs2(int u,int t){tps[u]=t;if(son[u])dfs2(son[u],t);for(auto v:tar[u]){if(v==fat[u]||v==son[u])continue;dfs2(v,v);}
}
inline int __lca(int x,int y){while(tps[x]!=tps[y]){if(dep[tps[x]]>dep[tps[y]])swap(x,y);y=fat[tps[y]];}if(dep[x]>dep[y])swap(x,y);return x;
}struct node{int x,y,lca,v,id;
}q[N];
vector<int>qu[N],qd[N];
int las[N],loc[N];void dfsup(int u,int f){swap(las[a[u][0]],las[a[u][1]]);for(auto id:qu[u]){q[id].v=las[q[id].v];}qu[u].clear();for(auto v:tar[u]){if(v==f)continue;dfsup(v,u);}swap(las[a[u][0]],las[a[u][1]]);
}
void dfsdw(int u,int f){int tmp0=loc[a[u][0]],tmp1=loc[a[u][1]];swap(las[tmp0],las[tmp1]);swap(loc[a[u][0]],loc[a[u][1]]);for(auto id:qd[u]){q[id].v=las[q[id].v];}qd[u].clear();for(auto v:tar[u]){if(v==f)continue;dfsdw(v,u);}swap(las[tmp0],las[tmp1]);swap(loc[a[u][0]],loc[a[u][1]]);
}int main(){scanf("%d%d",&n,&T);for(int i=1;i<=n;++i){scanf("%d",&a[i][0]);}for(int i=1;i<=n;++i){scanf("%d",&a[i][1]);}for(int i=1;i<n;++i){int u,v;scanf("%d%d",&u,&v);tar[u].push_back(v);tar[v].push_back(u);}dfs1(1,0);dfs2(1,1);for(int i=1;i<=T;++i){scanf("%d%d%d",&q[i].x,&q[i].y,&q[i].v);q[i].lca=__lca(q[i].x,q[i].y);q[i].id=i;}for(int i=1;i<=n;++i)las[i]=i,loc[i]=i;//1for(int i=1;i<=T;++i){if(q[i].v<=n){qu[q[i].x].push_back(q[i].id);}}dfsup(1,0);//2for(int i=1;i<=T;++i){if(q[i].v<=n){qd[q[i].lca].push_back(q[i].id);}}dfsdw(1,0);//3for(int i=1;i<=T;++i){int f=fat[q[i].lca];if(q[i].v<=n&&f){qu[f].push_back(q[i].id);}}dfsup(1,0);//4for(int i=1;i<=T;++i){if(q[i].v<=n){qd[q[i].y].push_back(q[i].id);}}dfsdw(1,0);for(int i=1;i<=T;++i){printf("%d\n",q[i].v);}puts("");return 0;
}

需要一个求 \(lca\) 的复杂度。

http://www.jsqmd.com/news/432331/

相关文章:

  • 电线电缆批发哪家好?2026 正规线缆厂家汇总指南 - 深度智识库
  • 自己创建Quartus工程,为DE25-Nano 设计一个底层硬件时为什么在uboot阶段访问FPGA端外设LED时串口卡死,无任何反应
  • Smart 200PLC与ACS800 Modbus RTU通讯:变频器说明书及配置详解,附S...
  • Android View 与 Compose 布局裁剪差异(clipChildren 机制)
  • 2026年3月全新盘点:国内线缆厂家实力排名推荐 - 深度智识库
  • 海外短剧开发:一套系统跑通全球多区,低投入高回报的出海优选方案
  • 2026年电抗器厂家实力推荐榜:高压/低压/串联/干式/滤波/变频器专用/铁芯/空心/限流/启动电抗器品牌深度解析与选购指南 - 品牌企业推荐师(官方)
  • 基于深度学习的手写数字检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
  • 先进封装的“超级桥梁”:Interposer为何能撑起芯片性能天花板?
  • 2026深圳留学中介精选:聚焦香港留学申请、香港本科申请,靠谱机构详解 - 品牌2026
  • 2026年3月盘点:四川省职业装、工装与定制西服实力生产厂家推荐 - 深度智识库
  • 城市综合治理数字化智慧服务平台
  • 2026深圳美国留学中介推荐,深圳高端美国留学中介优选指南 - 品牌2026
  • 光伏串联逆变器迎增长风口:664.5亿元市场基座,2032年将逼近1211.5亿元规模
  • 2026五大券商超级app开发工具横评:企业级到个人全覆盖!
  • 2026锌铝镁生产公司哪家好?行业实力企业推荐 - 品牌排行榜
  • 电线电缆出售批发指南:2026年3月国内优质线缆厂家实力解析 - 深度智识库
  • 2026广州天然野生沉香十大厂家实力排行榜:聚焦全屋健康,基于环保性能与市场口碑的权威推荐榜单 - 十大品牌榜
  • 2026年广州水晶珠宝品牌优选指南 五大品质厂家参考 - 十大品牌榜
  • 硅片抛光设备市场规模锁定46.98亿元,半导体产业链关键配套迎来发展新动能
  • CAL | KDD 2022 | 《Causal Attention for Interpretable and Generalizable Graph Classification》
  • 从VibeCoding到AIAgent,OceanBaseseekdb打造AI时代毫秒级数据沙箱
  • 济高控股 搭贝零代码:国有房企数字化转型的 “济南样本” - 搭贝
  • NetBackup 11.1 for Linux Windows - 领先的企业备份和恢复解决方案
  • 焊接软件市场增长态势明晰:2032年规模逼近61.14亿元,技术赋能产业新图景
  • 2026户外路灯怎么选?这些口碑公司不容错过,太阳能壁灯/欧式庭院灯/景观灯照明/园林景观庭院灯,路灯源头厂家哪家好 - 品牌推荐师
  • 2026年75Cr1原材料供应厂家推荐 - 品牌排行榜
  • 13.1%年复合增速!光伏板清扫机器人赛道开启高成长周期
  • 2026锌铝镁公司联系方式及行业应用服务参考 - 品牌排行榜
  • 聚焦光伏核心环节!并网逆变器测试方案出炉,9.62亿元市场规模释放行业潜力