10.7闲话

摆摆摆,我是姬虫摆摆世。

数据结构课终于能听懂了,但是没时间写题了,怎么会是呢😕😕😕

晚上打牛客。应该是切了 ABC 仨题,D 打暴力不知道多少分。感觉基准分都他妈的 200+ 了😅😅😅。

欸今天好像能写的事好少啊,估计是今天太忙了吧,晚上也懒得打 abc 了,明天看看能不能打 arc 吧(双关😕)

闲话不闲了,所以没多少可以写的了,哎。希望没退役的时光再多一点吧,不想回班上 whk,想在机房一直待到死。

哦哦哦今天参加 arc5.0 曲目投票了,我草我他妈真爱必须投 Lost Emotion 啊我草,这么好听的歌🥵🥵🥵。


推歌:Apollo -TJ.hangneil

虽然真爱投了 Lost Emotion 但是之前推歌推过了。

喜报:两天推了两首飒飒酷热,一首天津红牛,怎么会是呢😕😕😕

(昨天第二首歌在下面的图里)


CF1264D

我们可以先枚举最终括号匹配的中间点,然后枚举左右的括号数来计算权值,但是我们可以发现:一个括号序列最终匹配的中间点可能不只有一个,因此我们需要一个规则来防止算重。

我们先确定一个括号序列,然后设 \(a_i\)\([1, i]\) 这段区间内 ( 的个数,\(b_i\)\([i+1, n]\) 这段区间内的 ) 的个数,那么显然,这个括号序列的权值为 \(\max_{i=1}^n (\min(a_i, b_i))\)。我们考虑找到这个决策点。

我们可以发现,当我们让 \(i\) 向右扫时,如果扫到了 (,那么会让 \(a_i\) 加一;扫到 ) 会让 \(b_i\) 减一。因此我们可以得到:\(a_i\) 单调递增,\(b_i\) 单调递减。我们把 \(a\)\(b\) 的图像画出来可能就是下面的样子:

而我们要求的答案即为下图中的绿色部分。

我们可以发现,\(a_i=b_i\) 为其最优决策点,且该序列的权值为当前的 \(a_i\)

回归到最上面的问题,我们的目的是解决计算重复。显然对于一个括号序列,满足 \(a_i=b_i\) 的位置有且仅有一个,那么我们可以直接在 \(a_i=b_i\) 的时候来计算答案。

我们还是枚举中间点 \(p\),设左边的 (\(x\) 个,?\(a\) 个,右边的 )\(y\) 个,?\(b\) 个。并且我们让左右两边的左右括号数量相等,那么我们可以列出下面的式子:

\[ans_p=\sum_{i=0}^a (x+i)\dbinom{a}{i}\dbinom{b}{x+i-y} \]

我们用这个式子可以 \(O(n^2)\) 出答案,我们考虑把这个式子再推推:

\[\begin{aligned} ans_p&=\sum_{i=0}^a (x+i)\dbinom{a}{i}\dbinom{b}{x+i-y}\\ &=x\sum_{i=0}^a\dbinom{a}{i}\dbinom{b}{b+y-x-i}+\sum_{i=0}^a i\dbinom{a}{i}\dbinom{b}{b+y-x-i} \end{aligned} \]

考虑经典结论 \(m\dbinom{n}{m}=n\dbinom{n-1}{m-1}\) 以及范德蒙德卷积,我们可以得到最终的式子:

\[ans_p=x\dbinom{a+b}{b+y-x}+a\dbinom{a+b-1}{b+y-x-1} \]

时间复杂度 \(O(n)\)


posted @ 2023-10-07 21:13  crimson000  阅读(50)  评论(1编辑  收藏  举报