闲话8.13

发布时间 2023-08-13 20:38:10作者: crimson000

今天上午打了一场模拟赛,被一群邢紫藤暴打了???

上来 T1 想了半个小时想到个做法,写了十几分钟发现假了。又想了个做法,写写写然后过了大样例,然后每 \(5\) 分钟就能拍出来一个错,大样例我谢谢你???。T2 感觉是排列组合,写了个大 dp 跑了,考完发现 WA 了,但是不知道 WA 哪了。T3 看着不太可做,跳了。T4 完全不可做,跳了。

最终得分:\(92+0+0+0=92pts\)

wangk 的奇妙数据:

属于是逆天,\(n\le 20\) 的数据能 TLE 是吧。

下午终于能回二北机房写题了,舒服。晚上让 Zkl21 点的炸鸡,ytq 要求点一份火鸡面,最后把他辣的???

晚上建议直接把 pdqb 枪决。

今晚见证 ezOIer 和管理对线:https://lglg.top/659513


推歌:CHAOS -Æsir

虽然我不玩 cy2,但是这首歌联动到 Arc 的时候第一时间去听了听,感觉意外的好听。而且也久仰 CHAOS 大名。

ARC 侧铺面不评价


模拟赛T1

感觉比lbx 的做法好理解一些。

首先我们考虑一个合法括号序列的产生条件:和未匹配的括号产生、和前面合法的括号序列产生。我们将两种贡献分开考虑。

第一种贡献十分好计算,我们可以直接维护一个当前未匹配左括号数量,加入右括号的时候计算即可。

我们设 \(ext_i\) 为第 \(i\) 次添加括号后最右端向左能扩展出多少段合法括号序列。拿下面这个图来说:

这个玩意用上面的方法就不太好维护了,就比如图中的 \(ext_4\),这里就和前面的括号牵扯上了,因此我们需要维护当前最后匹配上的括号,这提醒着我们可以用栈来维护这个过程。

具体的说,我们栈中存放加入这个括号的时间和当前剩余的括号数(只有左括号),加入右括号时弹栈计算第一类贡献,同时利用 \(ext_i\) 来计算被弹出这些节点的第二类贡献。

而当弹到栈空或者当前右括号匹配完后,我们就可以进行一个大分类讨论,分四种情况讨论并且维护 \(ext_i\) 即可。这里就不再展开。

最终复杂度 \(O(n)\)


今晚没有 fumo 图。