题解 P3976 [TJOI2015] 旅游
1.题解 P3204 [HNOI2010] 公交线路2.题解 P1081 [NOIP2012 提高组] 开车旅行3.题解 P1477 [NOI2008] 假面舞会4.题解 P5234 [JSOI2012] 越狱老虎桥5.题解 P6544 [CEOI2014] Cake6.题解 P4041 [AHOI2014/JSOI2014] 奇怪的计算器7.题解 P4798 [CEOI2015 Day1] 卡尔文球锦标赛8.题解 P4799 [CEOI2015 Day2] 世界冰球锦标赛9.题解 P1295 [TJOI2011] 书架10.题解 P6281 [USACO20OPEN] Social Distancing S11.题解 P1190 [NOIP2010 普及组] 接水问题
12.题解 P3976 [TJOI2015] 旅游
13.题解 P8096 [USACO22JAN] Drought G14.题解P7302 [BZOJ2131][NOI1998] 免费的馅饼15.题解 [BZOJ3307] P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并16.题解 [BZOJ3339] P4137 Rmq Problem / mex17.题解 [SP179][BZOJ2919][Poi1998]Word equations18.题解 P5930 [POI1999] 降水19.题解 BZOJ2720: [Violet 5]列队春游20.题解P3830 [SHOI2012]随机树21.题解 P4755 Beautiful Pair22.题解 P9229 扩展九连环23.题解 P7165 [COCI2020-2021#1] Papričice24.题解 P7169 [eJOI2020 Day1] Exam25.题解「JOI 2014 Final」IOI 馒头26.题解 P9911 [COCI 2023/2024 #2] Kuglice27.题解 P6356 [COCI2007-2008#3] CUDAK28.题解 P7309 [COCI2018-2019#2] Kocka29.题解 P6548 [COCI2010-2011#2] IGRA30.题解 P6491 [COCI2010-2011#6] ABECEDA题意
有一棵
有
分析
作为一道树形并且是最短路径的题,我们当然先从序列上思考。
显然是用线段树来维护,重点又变成了区间上的合并。
先思考从左到右,我们合并后的总区间的答案,只有三种可能:
- 左区间买,左区间卖。
- 左区间买,右区间卖。
- 右区间买,右区间卖。
对于第一种与第三种情况,我们可以直接从左区间与右区间继承,作为第二种,显然是从左区间的最小值买,右区间的最大值卖,之后就可以维护好我们的区间合并。由于不止左至右,我们同时需要维护右到左。
我们使用结构体来维护我们的这个区间的左至右的答案,右至左的答案,区间最大值,区间最小值。
struct node { int mx,mn,c1,c2;//c1 左至右 c2 右至左 inline friend node operator + (node fi,node se) { node res; res.mx=max(fi.mx,se.mx); res.mn=min(fi.mn,se.mn); res.c1=max(max(fi.c1,se.c1),se.mx-fi.mn); res.c2=max(max(fi.c2,se.c2),fi.mx-se.mn); return res; } }
维护好了区间,我们自然解决了序列上的该问题,至于放在树上,我们自然可以用树链剖分来解决。
在维护树上答案时,我们的左端点时在祖先,因此我们两条链的合并还需要重新解决。
dfs(1,0); redfs(1,1); tree.build(1,1,n); int Q=read(); while(Q--) { int u=read(),v=read(),x=read(); int lca=LCA(u,v); if(lca==u) { node res=query(v,lca); cout<<res.c1<<"\n"; } else if(lca==v) { node res=query(u,lca); cout<<res.c2<<"\n"; } else { node l=query(u,lca),r=query(v,lca); cout<<max(max(l.c2,r.c1),r.mx-l.mn)<<"\n"; } change(u,v,x); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!