CSP-S 2024 游记

Day 0

回顾了一下各类字符串算法,切了几道 ACAM 的题。(果然没考)

然后就摆了。

Day 1

上午狠狠的摆。

下午去考场。

考试过程中被小孩哥干扰,左边砸鼠标,右边砸键盘。

有点缺德。

T1

签。

cnti 为战力为 i 的怪兽的个数,答案即为 max(cnti)

T2

转换成每个车能被下标为 [l,r] 的摄像头看到。

最小点覆盖即可。

T3

dpi,j,k 为枚举到第 i 位,上一位蓝为第 j 位,上一位红为第 k 位。

显然有 i=ji=k

所以我们简化为 dpi,0/1,j,表示为枚举到第 i 位,第 i 位取红/蓝,上一位蓝/红为第 j 位。

于是有:

dpi,0,j=dpi1,0,j+[ai=ai1]×aidpi,0,i1=maxj=0i2(dpi,0,i1,dpi1,1,j+[ai=aj]×ai)

发现 0/1 互不影响。

于是又有:

dpi,j=dpi1,j+[ai=ai1]×aidpi,i1=maxj=0i2(dpi,i1,dpi1,j+[ai=aj]×ai)

鉴于 [ai=ai1]×ai 为定值,上排的式子可以转化成全局加。

考虑优化下排的式子。

dpi,i1=maxj=0i2(dpi,i1,dpi1,j+[ai=aj]×ai)

将其拆成三个式子的 max

  • dpi,i1
  • maxj=0i2dpi1,j
  • maxj<i1,ai=aj(dpi1,j+ai)

观察到第二个式子和第三个式子都包含区间最大值,考虑使用线段树优化 dp。

具体来说,对满足 ai=k 的项单独开线段树,并对全局单独开一棵。

那么二操作就是全局树的区间 max,三操作就是第 ai 棵树的区间 max

做完了。

T4

没来得及写,T3 debug 时间太长了。

模拟应该能拿 30 pts。

感受

  1. fsanitize 开了之后耗时几乎 ×2,T2 在打开时极限数据下耗时为 1300 ms,关闭后即降低至 600 ms。

  2. T3 式子转线段树的时候弄错了,浪费的时间有点长。

本文作者:redacted-area

本文链接:https://www.cnblogs.com/redacted-area/p/18514170

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Jimmy-LEEE  阅读(7)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起