http://acm.hznu.edu.cn/OJ/problem.php?cid=1263&pid=5

http://acm.hznu.edu.cn/OJ/problem.php?id=2584

题意:设f[i]=max(f[i-1],s[i]),ans=∏min(m[i],f[i]),m[i]和f[i]可修改。

题解:

线段树维护每个区间[l,r]且只考虑[l,r]的以下信息:

fl,fr:f[l]和f[r]的值

mul:∏min(m[i],f[i])

rmul:将右儿子用左儿子的f修正后右儿子的贡献

对于mul,有mul=左儿子的mul*ask(右儿子,左儿子的f[r])。

其中ask(x,pre)表示考虑x的子树,之前f为pre时的乘积。

若fl>=pre,则无需修正,直接返回mul即可。

若x为叶子,则暴力处理即可。

若左儿子的fr>=pre则右儿子只会被左儿子修正,返回ask(左儿子,pre)*mul。

否则左儿子将全部被修正为pre,故返回ask(右儿子,pre)*左儿子全部修正为pre的贡献即可,贡献可以在每个节点上套上一棵Treap进行O(logn)计算。

最新文章

  1. samba srver on centos-7
  2. EL:谁说N素含量高就不固氮了
  3. 【每日一题】剑指 Offer 22. 链表中倒数第k个节点
  4. Visual Studio Code高效开发----自动保存设置方法
  5. string、wstring、cstring、 char、 tchar、int转换方法
  6. 边缘端手势识别:AI 交互的正确打开方式
  7. 开发者应如何看待iOS平台和Android平台
  8. 实力封装:Unity打包AssetBundle(二)
  9. 别了,JavaScript;你好,Blazor
  10. Ubuntu下MySQL、Redis以及MongoDB三个数据库的启动、重启以及停止命令
  11. 空间服务器有问题是系统问题吗,服务器空间租用两个主要问题要留意
  12. sobel算子_边缘检测算法4.-教你动手实现kirsch和robinson算子
  13. 做生意做不过中国,于是英国发动了鸦片战争
  14. win7 64位 系统安装mysql_5.7.19(msvce120 or DirectXRepair35.zip修复)
  15. 学历查询和专业代码查询
  16. k-mer matching算法以及它存储受限的原因
  17. Windows 2008 Server线程池前瞻
  18. 水溶性/脂溶性/Cy3/Cy3.5/Cy5 NHS ester 染料在活体成像中的应用
  19. 图片加水印怎么加?这篇文章告诉你
  20. 微信公众号支付从前端到后台(小白教程)

热门文章

  1. html樱花飘落代码_爱心飘落特效
  2. vue中进度条写法_vue组件实现进度条效果
  3. spring mvc原理_Spring MVC的工作原理,我们来看看其源码实现
  4. 文档怎么添加云服务器,如何添加云服务器地址
  5. python super
  6. python交叉编译_交叉编译Python3.6.2,使用海思arm-hisiv200-linux-gcc,移植到arm开发板上...
  7. druid.io mysql 配置_druid.io 使用mysql存储metadata overlord启动出错
  8. linux 空格函数,linux c语言的split函数和空格处理函数
  9. oracle 双结点监听文件,RAC监听服务两个节点 只能起一个
  10. keras从入门到放弃(十六)内置预训练网络VGG