Live2D

Solution Set -「LOCAL」冲刺省选 Round XXIX

Summary

  啊……说老实话,早上昏昏欲睡的,起码浪费了一个多小时。比赛打麻了 qwq。

  A 题类似费用提前计算,回忆起这个 trick 之后就简单了。B 题又错付了,平衡树常数令人 😅,没注意到区间平移可以在数据结构之外进行。C 题打表,佛了。

Solution

A RK

  有 n 盏灯排成一排,在某时刻开始时操作灯 i,会立即改变灯 i 的状态,在下一时刻末改变灯 i+1 的状态,下下一时刻末改变灯 i+1 的状态……直到改变了灯 n 的状态或者某一时刻所有灯关闭。给定初始状态,求至少需要到第几时刻,能让所有灯关闭。

  多测,T216n16


  钦定时刻 r 时关完灯,fr(i,S) 表示时刻 i 时能否达到状态 S,每次操作灯时对灯序列的最终影响是确定的,所以 O(n32n) 打表就好。

B WK

  给定序列 {an},对于每个其子段 {bm},每次操作选定 i[1,m),令 bibi±1bi+1bi+11,目标是使所有 Kbi。求所有子段最小操作次数(无解算作 1 次)之和。

  n106


  对于 {bm},显然有解当且仅当 Kbi,此时最优操作次数为 i=1m1f(j=1ibimodK),其中 f(x)=min{x,Kx}

  计数?暴力一点,枚举右端点 r,维护每个左端点 l 的内部 f 贡献以及到这个 r 时模 K 的余数。记贡献为 v,余数为 r,那么转移涉及的修改是对 [vr1]T 的线性变换,直接平衡树维护矩阵,复杂度 O(nlogn) 理论正确。可以用线段树,也可以压缩矩阵数据量,总之我懒得写啦。

C SK

  一个 boss,n 滴血,每回合你随机获得以下三种手牌:

2022-03-11 23-04-41 的屏幕截图.png

之一,求期望需要多少回合消灭 boss。答案模 998244353


  显然是屯牌到最后一回合直接秒 boss,那么期望步数 = 期望恰好秒不掉 boss 的步数 +1 = 所有秒不掉 boss 的手牌被抽出来的概率和 +1。讨论牌型:

1:i=1n3i=13n2.

2:i=1(n1)/23i=13(n1)/22.

3:i13i=12.

2+3:i=1n/22i23i=22(2/3)n/21+3n/2.

这几种比较好算,剩下的容斥,即“假设这些类型都出现过”,再继续打,依此计算手牌伤害,那么

1+2:A(x)=13(x+x3)A(x)(113x13x3)A(x)=0.

1+3:B(x)=13(x+x2)B(x)(113x13x2)B(x)=0.

1+2+3:C(x)=13(x+x3+x4)C(x)(113x13x313x4)C(x)=0.

都能矩阵加速求点值,注意容斥的时候还是要把伤害算成假设条件下的伤害。例如 1+2+3 下对 2+3 的容斥应为 D(x)=13(x3+x4)D(x)。合并同类项之后只需要四次矩阵快速幂。

  复杂度 O(Tlogn),常数为矩阵乘法的 53

posted @   Rainybunny  阅读(99)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2021-03-11 Solution -「CF 1491H」Yuezheng Ling and Dynamic Tree
点击右上角即可分享
微信分享提示