线段树小技巧

如果发现直接线段树维护 val 不方便,不妨思考让线段树维护 val 的差分数组,说不定这样可以让你豁然开朗哦!

当然这也为平时的练习还有比赛提供了一个思考方向。

例题:「2019五校联考-镇海1」珂学家

题意:

mrsrz 是个珂学家,她正在进行她的珂研项目。

这天,mrsrz 渴了,想喝饮料。她突然想起自己还有一些化学试剂,所以打算自己配饮料。

mrsrz 找到了 n 种不同的试剂。由于 mrsrz 很粗心,没有给试剂贴标签,所以她并不知道每种试剂的成分是什么。因此,mrsrz 将这些试剂分别编号为 1 ~ n 。mrsrz 打算从其中选两种不同的试剂配饮料。

为了配出可口的饮料,mrsrz 需要知道每种试剂的可口度。mrsrz把所有试剂都尝了一口,得出了试剂的可口度为 vi

化学反应是非常危险的,为了保证安全,mrsrz 给每种试剂规定了用量范围。试剂的用量可以是 li ~ ri 的任意整数。两种试剂反应后的总量是两种试剂的用量之和,而反应后的试剂的可口度,为两种试剂的可口度的乘积。

现在,mrsrz 想知道,所有配出来总量为 k 的不同饮料的可口度之和是多少。

两种饮料不同当且仅当配成两种饮料的试剂中有一者或两者不同,或两种试剂的用量不同。

mrsrz 会问 m 个这样的问题,你只需要对每个问题,告诉她答案对 998244353 取模的结果即可。

n5000m5×105vi9982443521li,ri1071ki2×107

将询问离线下来,然后就是一个上述的线段树了吧!

可惜由于范围过大,这个做法fake了。。

这时再观察式子,应该要想到两次差分,这样就可以很好地完成这些操作了哦。不过我一开始写的时候没有想到,于是才有了上述的yy线段树。。

posted @   Freshair_qprt  阅读(121)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 历时 8 年,我冲上开源榜前 8 了!
· 物流快递公司核心技术能力-海量大数据处理技术
· 四大AI编程工具组合测评
· 关于能否用DeepSeek做危险的事情,DeepSeek本身给出了答案
· 如何在 Github 上获得 1000 star?
点击右上角即可分享
微信分享提示