首页 > 其他分享 >P9527 [JOISC2022] 洒水器 题解

P9527 [JOISC2022] 洒水器 题解

时间:2024-05-06 18:55:51浏览次数:33  
标签:标记 题解 JOISC2022 tag P9527 operatorname dis

题目传送门

以下设 \(\operatorname{dis}(x,y)\) 表示树上 \(x,y\) 两点间的距离。修改时对 \(u\) 的周围与 \(u\) 距离小于等于 \(d\) 的点的点权乘 \(w\)。


暴力不行,于是考虑打标记。

注意到 \(0\le d\le 40\),一个很自然的想法是:设 \(tag(x,i)\) 表示将 \(x\) 的子树内与 \(x\) 距离小于等于 \(i\) 的所有点的点权乘 \(tag(x,i)\)。修改时遍历 \(l\) 分别表示 \(u\)、\(u\) 的父亲……\(u\) 的 \(d\) 级祖先,将 \(tag(l,d-\operatorname{dis}(u,l))\) 都乘上 \(w\) 即可。查询时依然遍历 \(l\),沿途把标记累乘即可。这样 \(l\) 最多 \(O(d)\) 个取值,总复杂度是 \(O(nd)\) 的。

显然这样会有点权被重复乘 \(w\),解决方案也很简单,打标记时将重复的用除法抵消。具体的,设 \(l\) 的一个孩子 \(s\),使 \(s\) 的子树内有 \(u\),打标记时将 \(tag(s,d-\operatorname{dis}(u,l)-1)\) 即 \(tag(s,d-\operatorname{dis}(u,s)-2)\) 除以 \(w\) 即可。

下图给出了一个例子帮助理解:

图中 \(1\) 号点(即 \(u\))将

但模数可能没有逆元,这样做还是不行

标签:标记,题解,JOISC2022,tag,P9527,operatorname,dis
From: https://www.cnblogs.com/chargedcreeper/p/18175662/k-neighbor_mdf

相关文章

  • 数数 题解
    writeby小超手123题意:现在有四种物品,分别有\(n_{1},n_{2},n_{3},n_{4}\)个,有多少种排列物品的方案使得任意两个相邻物品的种类不同。\(n_{1},n_{2}\le200,\\n_{3},n_{4}\le50000\)。分析:可以考虑先把物品\(A,B\)排列好,再把物品\(C,D\)插入进去。需要注意的......
  • P10385 艺术与篮球 题解
    一道用编程解决的数学题。大概思路是:intmonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};这是普通年\(12\)个月的天数。然后还要考虑闰年,有\(2000,2004,2008,2012,2016,2020,2024\)。将这些闰年的二月二十九号手算出来能不能打篮球,最后加在结果上就行了。然后循环......
  • MySQL Connection not available问题解决方案
    在后端开发过程中,连接mysql数据库,过几个小时第一次使用会出现MySQLConnectionnotavailable报错这是因为MySql数据库存在一个连接池的回收时间,超过这个时间会导致资源无法正常释放,无法连接到MySql数据库1)在相关引用页面,进行定时刷新功能,这样尽管是同一个连接,但是相当于一个新......
  • 高一下三调|ssy的队列|hash dp|题解
    SSY的队列题目链接解析:考场上看到这个题第一眼是绝望的,毕竟数论咱是一窍不通.但是往下细看了看这个数据范围,N是很小的,就想了想模拟.然而只骗到10分.这个题绩效较高的解法是状压dp,在N<15的范围之内均可薄纱(ppllxx_9G也是成功拿到这70rank1了orz),可得70,但是一到后......
  • AtCoder Beginner Contest 352题解
    AtCoderBeginnerContest352Time:2024-05-04(Sat)20:00-2024-05-04(Sat)21:40AAtCoderLine问题陈述AtCoder铁路线有$N$个车站,编号为$1,2,\ldots,N$。在这条线路上,有趟进站列车从$1$站出发,依次停靠$2,3,\ldots,N$站,有趟出站列车从$N$站出发,依次停......
  • P3193 [HNOI2008] GT考试 题解
    之前学矩阵乘的时候做的题,当时因为不会\(kmp\)搜索一稀里糊涂过去了,现在填个坑。头图是\(Logos\)!P3193[HNOI2008]GT考试题链:洛谷题库题目大意:求有多少个长度为\(n\)的数字串的子串中不包含给出的长度为\(m\)位的串,范围\(n<=1e9\),$m<=20$。思路:首先考虑DP,令\(......
  • CF1630A And Matching 题解
    题目描述有\(n\)个数\(0,1,2,\cdots,n-1\)。你需要把他们两两分组,使得每组两个数按位与的结果之和\(=k\)。如果可能,请构造出一组可能的\(\fracn2\)个数对,否则输出-1。保证\(n\)是\(2\)的幂,\(k\len-1\)思路首先我们发现,\(n\)是二的幂,所以按照二进制的角度看,这......
  • [SDOI2015] 星际战争 题解
    假如将所有激光武器放在一边,所有机器人放在一边,激光武器向它可以伤害的机器人连边,再加超级源/汇点,这就是一个网络流问题。考虑激光武器向机器人连的边容量无限,而机器人向超级汇点连的边容量为机器人的装甲值,而超级源点连向激光武器的边则是用时\(\times\)激光武器伤害。发现假......
  • CF729B Spotlights 题解
    题目简述给出一个$n$行$m$列的$01$矩阵,定义每个点的价值为上下左右四个方向有$1$的方向数,求所有为$0$的点的价值和。题目分析我们首先可以考虑暴力,但是发现是不行的。于是我们考虑动态规划。设$dp_{i,j,0/1/2/3}$分别表示$(i,j)$这个点上方,左方,下方,右方是否有$......
  • [SCOI2007] 蜥蜴 题解
    发现实际上就是在求有多少只蜥蜴能逃出来。发现可以将柱子拆成入点和出点两部分,自己的出点向别人的入点连边,自己的入点向自己的出点连边。最后再加一个超级源点\(S\),连接所有有蜥蜴的柱子入点;再加一个超级汇点\(T\),连接所有能够跳出地图的柱子。我们猛然发现:这个问题不就是求......