2024.8.14 DP Round 2
A.store
Statement:
有
Solution:
第一问容易贪心算出。注意到值域很小,于是直接设
B.huffman
Statement:
按字典序顺序给出
-
没有任意一个映射后的字符串是另一个映射后的字符串的前缀。
-
映射后的字符串的字典序顺序必须与原来的字符串顺序一致。
-
最小,其中 是字符串映射后的长度。
Solution:
注意到由于字典序顺序不变,于是一个区间
考虑如何转移:
-
: -
:
于是得到了一个
先讲正解,注意到分割的方式是
接下来讲如何卡常:
-
手写
: 中的 是很慢的,大概可以快个 左右 -
手动
:#pragma GCC optimize(3, "Ofast", "inline")
,真的很快!!! -
减少
:通过改变循环枚举顺序,使下标尽量连续,将 用到极致。
C.diversity
Statement:
给定一个
-
假如这个矩阵的字符都一样,则该矩阵的多样性为
。 -
假设将这个矩阵从一条横线隔开成为两个子矩阵,设两个矩阵的多样性为
,则该矩阵的多样性为 。 -
假设将这个矩阵从一条竖线隔开成为两个子矩阵,设两个矩阵的多样性为
,则该矩阵的多样性为 。
问整个矩阵的多样性为多少。
Solution:
非常好的一道题。
首先容易有一个
然后注意到答案不会很大(这里的答案上界是
-
横着割:
-
竖着割:
这样就有了一个
然后注意到这是一个区间
D.zombie
Statement:
(原题面)
舞王僵尸的最新唱片 “抓住脑子啃啊啃” 在僵尸界的人气正急速飙升。他们准备在戴夫家门前的花园前表演。他们所在的位置排成了一条直线,每个舞王僵尸的位置可以用一个正整数坐标表示。
然而,戴夫在该直线上
现在你给舞王僵尸编订了一个舞步顺序。每次舞步可以让所有舞王僵尸向左或向右行进一步,此时它们的坐标会
最后,所有的舞王僵尸在你的舞步顺序下都陆续死亡。整个死亡过程可以简化为
而两种死亡序列
给出每个舞王僵尸和土豆雷的坐标,求有多少种本质不同的死亡序列,答案对
Solution:
首先注意到一个
显然假如选左边,它的左上方的所有点都只能选左边,右边同理。于是我们可以发现,上升子序列和合法的选择方案构成一个双射。首先考虑上升子序列向选择方案的映射,我们将在上升子序列的点选左边,覆盖到的点显然也要同时选,而剩下的点选右边即可。然后检查反射,注意到对于不同的上升子序列,其中不同的点覆盖的点显然会至少有一个会在一个序列不被覆盖到而另一个不会被覆盖到,这个画图不难知道。于是那个树状数组直接做即可,时间复杂度
本文作者:Little_corn
本文链接:https://www.cnblogs.com/little-corn/p/18360908
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步