首页 > 其他分享 >线段树小技巧

线段树小技巧

时间:2022-11-20 21:26:27浏览次数:47  
标签:技巧 饮料 线段 可口 leq mrsrz 树小 试剂

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

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

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

题意:

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

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

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

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

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

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

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

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

\(n\leq 5000\),\(m\leq 5\times 10^5\),\(v_i\leq 998244352\),\(1\leq l_i,r_i \leq 10^7\),\(1\leq k_i \leq 2\times 10^7\)。

标签:技巧,饮料,线段,可口,leq,mrsrz,树小,试剂
From: https://www.cnblogs.com/Freshair-qprt/p/16909561.html

相关文章

  • 线段树入门
    线段树是个好东西,首先要知道这些点:1.线段树适用于任何区间修改和区间查询的操作,复杂度只有O(logn)贼快2.线段树没有树状数组好写呢,其实也不难3.线段树每一个点是管理......
  • 技巧-root权限维持
    root权限-维持技巧参考链接:https://github.com/422926799/note/blob/master/学习记录/Linux提权/使用功能的Linux特权升级.mdhttps://422926799.github.io/posts/9dcc30......
  • 【学习笔记】AC自动机常用技巧汇总
    \(\text{AC}\)自动机常用技巧汇总参考文章:自动机相关byAlex_Wei相关题目与题解:杂题20221.\(\text{AC}\)自动机上\(\text{dp}\)常用与限制长度与字典的字符串计数......
  • Vim实用技巧(3)——插入模式
    插入模式插入模式技巧13在插入模式中即可即时更正错误技巧14返回普通模式技巧15不离开插入模式,粘贴寄存器中的文本技巧16随时随地做运算技巧13在插入模式......
  • pycharm 小技巧
    ctrl键+B查看定义源代码alt键+enter键查看帮助ctrl键+shift键+-号所有代码隐藏ctrl键+shift键++号所有代码展示ctrl键+D复制代码findusages......
  • 位操作技巧:正数不取反,负数取反
    原理1)异或运算法则:异或的两个bit相同结果为1,不同结果为02)一个数^0还是自身,没有任何效果,因为0^0=0,1^0=1。例子:0b0101,1010^0b0000,0000=0b0101,10103)单个bit^1......
  • Devpress 小技巧1
    列单选事件1.CheckEdit.Properties.CheckStyle=DevExpress.XtraEditors.Controls.CheckStyles.Radio;intcheckedRowIndex=-1;privatevoidgridView1_Cel......
  • MySQL查询技巧
    查询字符串截取最后一个指定字符前面的字符串用途:可以用于截取最后一个逗号前面的字符串,就是去掉最后一个逗号后面的字符串--查询原字符串,截取原字符串从第1位开始到......
  • 25个Pandas高频实用技巧
    导入案例数据集importpandasaspdimportnumpyasnpdrinks=pd.read_csv('http://bit.ly/drinksbycountry')movies=pd.read_csv('http://bit.ly/imdbratings')......
  • 63:循环代码优化技巧(极其重要)
    ###循环代码优化虽然计算机越来越快,空间也越来越大,我们仍然要在性能问题上“斤斤计较”。编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算:1.尽量......