1 条题解
-
0
自动搬运
来自洛谷,原作者为

ForgotMe
花与剑无痕,高挂一轮明灯。银蝶染旧梦,生死莫再问。搬运于
2025-08-24 22:08:20,当前版本为作者最后更新于2024-08-03 15:48:53,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
不算难的一道状态压缩 dp 题。
首先这个题面就很抽象,非要说得那么复杂。
手玩一下样例可以发现,这个金字塔可以分成完全相同的 部分,只需要考虑其中一部分就可以了。
将其形式化一下就是有一个二维数组 ,满足
-
,。
-
,。
-
对所有可能的 计数,其中 ,,。
直接做确实不太行,突破点在于 很小,发现所有可能的 的第一行状态全部搜出来,只有 种。
于是考虑状压 dp,设 表示到了第 行,当前状态为 ,当前 的总和为 的方案数。
转移的话非常简单,枚举当前行的状态 ,上一行的状态 ,看能不能转移。可惜直接来的话最坏枚举次数达到了 。
注意到能转移的条件本质上是一个高维的包含关系,使用高维后缀和优化即可。
有一些细节需要注意:由于一个合法的状态满足数单调不增,按照正常的高维后缀和写法可能会出现一些问题,例如二维情况下 与 ,按理来说是 先转移到 最后转移到 。但是 这个状态是不合法的,可能不存在导致贡献统计错误,于是需要进行修正。当高维前缀和进行到第 维时,如果是从不合法的状态转移而来,需要将该状态进行修正,即如果前面存在比第 个数小的数,滚一遍后缀 max 即可。例如 就直接修正成 。
-
- 1
信息
- ID
- 4189
- 时间
- 2000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者