杂题选讲。
讲了一车题,就做了一个。
这几天在洛谷的提交量骤降,要被超过去了喵。
#3692. 「JOISC 2022 Day3」洒水器
简单小水题。
就是设 \(d[i][j]\) 表示以 \(i\) 为根的子树里距离根的长度为 \(j\) 的点要乘的权值。
然后修改就是网上跳,改 \(D-dis,D-dis-1\)的就行。
查询也是往上跳。
#3033. 「JOISC 2019 Day2」两个天线
憨憨数据结构,但是我是憨憨。
拆贡献,然后从左向右考虑。只考虑 \(H_j-H_i,j>i\) 的贡献,另外一种反转一下即可。
考虑把询问挂在右端点上,考虑每次加入一个新点 \(j\)。
在两个条件中,其中一个要求 \(i+a_i\le j\le i+b_i\) ,也就是左边的点有一定生效时间,那么只需要在开始生效的时候在 \(i\) 处加入自己表示生效,结束后再让自己失效。
另外一个条件是 \(j-b_i\le i \le j-a_i\) ,这是用 \(j\) 的一部分限制 \(i\) ,这就是在 \(j\) 处,在一定区间内加入 \(j\) 产生的贡献。
具体而言就是每个点两个键值,一个表示自己产生的贡献 \(-H_i\) ,另一部分指后面的产生的贡献,\(H_j\),满足第一个条件就是在开始生效时在自己的第一个键值处加上贡献。第二个条件就是加 \(j\) 的时候对一段区间的第二个键值取 \(\max\) 。因为最后求 \(\max\),所以不用 tree beats,直接打 tag 就行。
查询就是在右端点区间查历史最大值,因为所有贡献都是在左边的点上,所以不符合的一定统计不进去。
赞美太阳!!
注意的是在单点修改第一个键值的时候把这个位置的第二个键值清空,因为要消掉以前的贡献。
废话
我最近有点浮躁。总想吃小孩,式子总推错。
我会努力改掉的,对吧
我前几天生成函数之类的什么做的恶心。现在想做点思维或者数据结构散散心(?)
标签:le,贡献,键值,生效,2.7,就是,小记 From: https://www.cnblogs.com/cc0000/p/17100197.html转吧转吧 丑陋的马啊
我知道你不甘当下
现啊实啊 太复杂让时间作答
眼中藏的海洋 会冲刷旁人吵闹
最奇怪的总是你是你
最独特的也是你是你
这世界 绝对不会只有一个轴心
最孤单的还是你是你
最心疼的是赌上所有安全感 作为筹码(丑马)的你