Little Sub and Game
2024-04-16 02:12:06
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)计算。
最新文章
- samba srver on centos-7
- EL:谁说N素含量高就不固氮了
- 【每日一题】剑指 Offer 22. 链表中倒数第k个节点
- Visual Studio Code高效开发----自动保存设置方法
- string、wstring、cstring、 char、 tchar、int转换方法
- 边缘端手势识别:AI 交互的正确打开方式
- 开发者应如何看待iOS平台和Android平台
- 实力封装:Unity打包AssetBundle(二)
- 别了,JavaScript;你好,Blazor
- Ubuntu下MySQL、Redis以及MongoDB三个数据库的启动、重启以及停止命令
- 空间服务器有问题是系统问题吗,服务器空间租用两个主要问题要留意
- sobel算子_边缘检测算法4.-教你动手实现kirsch和robinson算子
- 做生意做不过中国,于是英国发动了鸦片战争
- win7 64位 系统安装mysql_5.7.19(msvce120 or DirectXRepair35.zip修复)
- 学历查询和专业代码查询
- k-mer matching算法以及它存储受限的原因
- Windows 2008 Server线程池前瞻
- 水溶性/脂溶性/Cy3/Cy3.5/Cy5 NHS ester 染料在活体成像中的应用
- 图片加水印怎么加?这篇文章告诉你
- 微信公众号支付从前端到后台(小白教程)
热门文章
- html樱花飘落代码_爱心飘落特效
- vue中进度条写法_vue组件实现进度条效果
- spring mvc原理_Spring MVC的工作原理,我们来看看其源码实现
- 文档怎么添加云服务器,如何添加云服务器地址
- python super
- python交叉编译_交叉编译Python3.6.2,使用海思arm-hisiv200-linux-gcc,移植到arm开发板上...
- druid.io mysql 配置_druid.io 使用mysql存储metadata overlord启动出错
- linux 空格函数,linux c语言的split函数和空格处理函数
- oracle 双结点监听文件,RAC监听服务两个节点 只能起一个
- keras从入门到放弃(十六)内置预训练网络VGG