题面传送门
直接做显然不太好做,考虑转化成每次都从 n 个怪中随机挑一个出来打,但是只有挑到还有血量的怪才算入“打了一次”。
使用生成函数来刻画这个东西:当打了一次,乘上一个 y,打了有效的一次,乘上一个 x。枚举最后一次有效攻击打到了哪个身上,则每个怪的 EGF 就是
xaeyn+∑0≤j<a(xi−xa)yinii!
直接把所有生成函数用个 DP 卷出来,这部分复杂度是 O(n3a3) 的。
现在我们需要计算某个 xaybekyn 的系数,将其贡献到攻击了 a+1 次的答案中。将 e 展开,我们要求的东西实际上长这样:
∑i≥0(kn)i(i+b)b–
发现只和 k,b 有关,不妨确定 k,记 f(b) 表示 b 的系数,则将 i=0 的情况提取出来,有
f(b)=b!+kn∑i≥0(kn)i(i+b+1)b–
注意到 (i+b+1)b– 实际上是可以展开的,其可以展开成 b∑j=0(i+j)b−j––––,展开以后将 f(b) 移项到左边,整理为
n−knf(x)=b!+kn∑0≤j<xf(j)bb−j––––
就可以 O(n2a2) 对于某个固定的 k 递推出系数。瓶颈还是在于前面的背包。
submission
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
2023-10-30 UOJ #823. 【UR #26】铁轨回收
2021-10-30 JOISC 2014