新闻详情

新闻详情

首页 / 资讯中心 / 详情

P9527 [JOIST 2022] 洒水器 / Sprinkler 题解

发布时间:2026/9/30 10:23:10来源:尧图网络
P9527 [JOIST 2022] 洒水器 / Sprinkler 题解
P9527 [JOIST 2022] 洒水器 / Sprinkler 题解注意力惊人思路首先我们注意到Dk≤40D_k\le40Dk​≤40所以考虑暴力一些的解法。每次直接遍历所有相邻的点肯定是不行的但我们注意到与每个节点距离不超过DkD_kDk​的祖先至多有DkD_kDk​个所以考虑对祖先进行操作。考虑操作一个点会对哪些点产生影响。首先肯定会对子树内的点产生影响设tagx,itag_{x,i}tagx,i​表示对xxx的子树内与xxx距离不超过iii的点的标记那么直接对tagx,dtag_{x,d}tagx,d​加标记即可。然后考虑对祖先及其子树内节点的影响。注图片及后文的ddd是指当次修改的范围DkD_kDk​。如图所示我们只需要对tagfx,d−(depx−depfx)tag_{fx,d-(dep_x-dep_{fx})}tagfx,d−(depx​−depfx​)​乘上WWW并对tagy,d−(depx−depfx)−1tag_{y,d-(dep_x-dep_{fx})-1}tagy,d−(depx​−depfx​)−1​除去WWW即可。然后每次查询就只需要暴力往上跳祖先累计答案即可。但是此时有个严峻的问题就是题目没有保证模数一定与WWW互质那么我们就无法使用逆元了而且常数还很大所以我们要找到一种方法每次修改查询只用乘。我们注意似乎每次打标记都会打很多重复的标记考虑修改xxx时我们每次修改它的祖先每个祖先yyy除根节点外都会被修改两次一次是给以它为根的子树打上标记一次是给它父节点去掉x−fxx-fxx−fx的标记。第一次修改的是将tagy,d−(depx−depy)tag_{y,d-(dep_x-dep_y)}tagy,d−(depx​−depy​)​乘WWW第二次修改的是将tagy,d−(depx−depfx)−1tag_{y,d-(dep_x-dep_{fx})-1}tagy,d−(depx​−depfx​)−1​即tagy,d−(depx−depy)−2tag_{y,d-(dep_x-dep_y)-2}tagy,d−(depx​−depy​)−2​除WWW这似乎像一个前缀和形式于是此时我们去掉重复修改的部分即[0,d−(depx−depy)−2][0,d-(dep_x-dep_y)-2][0,d−(depx​−depy​)−2]惊人的发现此次修改只对yyy的子树中与yyy的距离在[d−(depx−depy)−1,d−(depx−depy)][d-(dep_x-dep_y)-1,d-(dep_x-dep_y)][d−(depx​−depy​)−1,d−(depx​−depy​)]的节点有影响而且对于xxx本身也是符合这个条件的所以我们将tagx,itag_{x,i}tagx,i​的状态改为对xxx的子树内与xxx距离恰好为iii的点的标记那么每次修改时只需要把xxx及其祖先的tagy,d−(depx−depy)tag_{y,d-(dep_x-dep_y)}tagy,d−(depx​−depy​)​和tagy,d−(depx−depy)−1tag_{y,d-(dep_x-dep_y)-1}tagy,d−(depx​−depy​)−1​改一下即可。需要注意的是对于根节点由于它没有父节点所以他的标记还是距离为[1,d−(depx−depy)][1,d-(dep_x-dep_y)][1,d−(depx​−depy​)]的所以对于根节点要全部距离≤d−(depx−depy)\le d-(dep_x-dep_y)≤d−(depx​−depy​)的tagrttag_{rt}tagrt​都要修改一遍。查询就暴力往上跳ddd个祖先yyy每次记录一下tagy,depx−depytag_{y,dep_x-dep_y}tagy,depx​−depy​​即可。由于d≤40d\le 40d≤40每次跳的祖先不超过 40对于修改的根节点最多只有一个最多改ddd个距离的标记所以单次修改和查询的时间复杂度都为O(d)O(d)O(d)总时间复杂度为O(nqd)O(nqd)O(nqd)。代码#includebits/stdc.husingnamespacestd;typedeflonglongll;intn,mod;//节点数量及模数vectorintG[200010];ll h[200010]/*初始每个点的高度*/,tag[200010][42]/*题解中的tag数组*/;intfa[200010];//每个点的父节点voiddfs(intx,intxfa){//记录每个节点的父节点fa[x]xfa;for(inty:G[x])if(y!xfa){dfs(y,x);}}voidsolve(intX,intd,intval){//修改intxX;while(d0x){tag[x][d]tag[x][d]*val%mod;//修改tag[y][d-(dep[x]-dep[y])]if(d-10)tag[x][d-1]tag[x][d-1]*val%mod;//修改tag[y][d-(dep[x]-dep[y])-1]if(!fa[x])for(inti0;id-2;i)tag[x][i]tag[x][i]*val%mod;//特判根节点的情况xfa[x];//往上跳d--;}}llquery(intx){//查询ll ansh[x];for(inti0;i40x;i){//往上跳40个祖先ansans*tag[x][i]%mod;//记录当前祖先对x的标记xfa[x];//往上跳}returnans;}intmain(){ios::sync_with_stdio(0);cin.tie(0);cinnmod;for(inti1,x,y;in;i){cinxy;G[x].push_back(y);G[y].push_back(x);}dfs(1,0);for(inti1;in;i)cinh[i];for(inti1;in;i)for(intj0;j40;j)tag[i][j]1;//记得初始化为1intQ;cinQ;while(Q--){intop;cinop;if(op1){intx,d,v;cinxdv;solve(x,d,v);}else{intx;cinx;coutquery(x)\n;}}return0;}
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

tar解压失败排查与修复:从gzip报错到完整复原 2026/9/30 11:02:42

tar解压失败排查与修复:从gzip报错到完整复原

最近排查一个线上问题时,连着在三台服务器上撞见了同一种尴尬场面: tar -zxvf 刚解压到一半,终端里刷出一行 gzip: stdin: unexpected end of file ,紧接着就是 tar: Error is not recoverable: exiting now ,退…

阅读更多 →
禅道二次开发整合Dify工作流:项目月报AI智能分析实战指南 2026/9/30 11:02:42

禅道二次开发整合Dify工作流:项目月报AI智能分析实战指南

做了这么多年项目管理和研发管理工具,我早就习惯了禅道这个老伙计。它功能扎实、部署灵活、国内团队用得多,但真要让它把项目月报这种需要"人话总结"的事情做好,还是有些力不从心。所以当看到"禅道二次开发:项目月…

阅读更多 →
Spring Boot + Vue家庭维修系统:源码部署与前后端联调实战 2026/9/30 11:02:34

Spring Boot + Vue家庭维修系统:源码部署与前后端联调实战

最近在帮别人整理一套“基于Spring Boot Vue的Web家庭设备维修服务系统”,光是看标题就知道,这不是一个只能跑个登录页的玩具项目,而是包含用户下单、维修工接单、管理员派单、服务评价、维修进度跟踪等完整业务流程的企业级教学项目。很多人…

阅读更多 →
上海 PE 收缩膜源头工厂推荐:上海睿越塑料,深耕长三角多行业包装 2026/9/30 11:02:27

上海 PE 收缩膜源头工厂推荐:上海睿越塑料,深耕长三角多行业包装

长三角地区水饮、食品、家具、日化等产业密集,PE 收缩膜作为外包装刚需,采购时优先选择本地源头工厂,既能保障交付时效、降低物流成本,又能方便上门验厂、及时响应产线调试需求。在上海众多塑料包装生产企业中,上海睿越…

阅读更多 →
TVA类人智眼实操指南(10):小样本学习与现场“自我进化” 2026/9/30 11:02:26

TVA类人智眼实操指南(10):小样本学习与现场“自我进化”

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习&…

阅读更多 →
TVA类人智眼实操指南(18):为什么不用几万块的显卡也能跑得飞快? 2026/9/30 11:02:26

TVA类人智眼实操指南(18):为什么不用几万块的显卡也能跑得飞快?

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉