「杂题乱刷2」AT_abc140_e

哎哎,太毒瘤,哎哎,太深刻。

题目链接

AT_abc140_e [ABC140E] Second Sum

解题思路

考虑有以下基本性质:

1n 的数列上,包含 i(1in) 点的区间(端点为整数)个数为 i×(ni+1) 个。

因此此题我们可以使用拆贡献来计算。

具体的,设 maxl 表示 ai 左边的第一个比 ai 大的数字编号,maxll 表示 amaxl 左边的第一个比 amaxl 大的数字编号,maxr 表示 ai 右边的第一个比 ai 大的数字编号,maxrr 表示 amaxr 右边的第一个比 amaxr 大的数字编号,

以上定义均有若没有这样的数字则编号为 1 的性质。

然后有以下分讨:

  • maxl=maxr=1,则方案数为 0

  • maxl=maxrr=1,maxr1,则方案数为 (nmaxr+1)×i

  • maxl=1,maxrr1,则方案数为 (maxrrmaxr)×i

  • maxr=maxll=1,maxl1,则方案数为 (ni+1)×maxl

  • maxr=1,maxll1,则方案数为 (ni+1)×(maxlmaxll)

  • maxll=maxrr=1,maxl1,maxr1,则方案数为 maxl×(maxri)+(nmaxr+1)×(imaxl)

  • maxll=1,maxrr1,maxl1,则方案数为 maxl×(maxri)+(maxrrmaxr)×(imaxl)

  • maxrr=1,maxll1,maxr1,则方案数为 (nmaxr+1)×(imaxl)+(maxlmaxll)×(maxri)

  • maxrr1,maxll1,则方案数为 (maxlmaxll)×(maxri)+(maxrrmaxr)×(imaxl)

然后这题就做完了,有一车细节,为啥只评绿啊?

参考代码

代码太长了,所以贴个提交记录

posted @   wangmarui  阅读(6)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示