2025.1.1 鲜花

Cdq 解决一类最值和双端点有关的数点问题

COLORFUL BOX
真っ白な想いに
梦のかけらを
描いて
动き出す未来
子供の顷に知った
心が跃るような
わくわくする感情を
今も覚えてるよ
迷いや不安はない
期待に溢れてる
何にだってなれ
そうな気がした
はじまりの静けさと
これからにざわめく鼓动
未知数な物语
そのワンシーンを大切に
めに焼き付けたいから
真っ白な気持ちを
鲜やかに染めていこう
どんな理想も自分
次第で近づくから
不透明な明日に
悩んで踬いたときも
君の声で
乗り越えられるから
叶えたい
胸の中の
沢山の希望のかけらを
描いて
走り出す世界
手のひらに伝わる
きらめくイメージを
少しずつ纺いでいく时间も
大切で大好きな
かけがえのないものになる
未完成な物语
そのワンシーンを忘れない
辉き感じたいから
真っ白な想いを
何色に染めていこう
どんな昨日も自分に
エールをくれるから
流した涙も
元気が足りないときも
君といれば
笑颜になれるから
届けたい
胸の中の
溢れ出した梦のかけれを
描いて
动き出す未来
一人一人が持つ
想いを线で繋いだら
星座みたいに広がる景色
真っ白な光を
どこまでも追い続けて
もっと知りたい
好奇心を感动の先へ
真っ白な気持ちを
鲜やかに染めていこう
どんな理想も
自分次第で近づくから
不透明な明日に
悩んで踬いたときも
君の声で
乗り越えられるから
叶えたい
胸の中の
沢山の希望のかけらを
描いて
走り出す世界

今年最后一篇鲜花。

今年的第一篇鲜花。

被同一个 trick 背刺两次也是没救了。

Yet Another Partiton Problem

首先 n2k 的转移是显:

gi=minj[1,i){fj+(rl)×maxk(j,i]{ak}}

发现 max 同时和 i,j 有关,不好优化。

很牛的 trick 是套一个 cdq,考虑处理 j<midi 的贡献,容易发现其 maxk(j,i]{ak} 可以拆成 max{maxk(j,mid]{ak},maxk(mid,i]{ak}},而这两段可以分开做,做两个斜率优化即可。

于是我们用一个 log 做掉了一个同时和 i,j 有关的 max

Baby's First Suffix Array Problem

首先建 SA

这里我们默认都是在排好序的数组上,如果是原数组第 i 个写成 sai

发现因为删除了一个后缀,其相对大小会改变,考虑统计变化量,即原来在 k 前被 k 超过的部分和原来在 k 后超过 k 的部分。

简单分讨一下 sai,sak,i,k 的大小关系,容易发现只有两种有贡献。

分别是:

sai[l,sak)

lcp(sai,sak)+sak>r

i<k

sai(sak,r]

lcp(sai,sak)+sai>r

前一种是好做的,发现 rsak 是定值,lcpi 上是连续的一段,所以 lcp(sai,sak)+sak>r 相当于是一个限制 i>p,可以二分求出 p,然后直接做二维偏序即可。

后一种没有这么优良的性质,考虑到 lcp(sai,sak)minx(i,k]{htx},于是依然套用 cdq,将其拆成 min{minx(i,mid]{htx},minx(mid,k]{htx}}

但是你发现你现在对 min 两边大小分讨会变成三维偏序,十分不好做,于是我们写出这个式子 min{minx(i,mid]{htx},minx(mid,k]{htx}}+sai>r,因为其是 >,我们有个经典拆法,拆成 minx(i,mid]{htx}+sai>rminx(mid,k]{htx}+sai>r,也就是说其现在是这三个式子:

sai(sak,r]

minx(i,mid]{htx}+sai>r

minx(mid,k]{htx}+sai>r

发现 minx(mid,k]{htx}+sai>rminx(mid,k]{htx} 对于每个相同的 k 是定值,所以第三个式子可以写成 sai>rb(b=minx(mid,k]{htx}) 的形式,这样就和第一个式子合并了,于是依然是二维偏序。

复杂度 O(nlog2n)

p

posted @   5k_sync_closer  阅读(60)  评论(5编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示