专栏文章
UVA1052 Bit Compressor 题解
UVA1052题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @min3r9jt
- 此快照首次捕获于
- 2025/12/01 20:05 3 个月前
- 此快照最后确认于
- 2025/12/01 20:05 3 个月前
首先设 表示字符串 的长度,因为原串 的长度为 , 的个数为 ,那么 的个数即为 ,因为压缩之后 的个数只会变多或者不变,不可能变少,因此 ,否则无解。
接下来想怎么动态规划,设 表示把从 往后的位置还原到原串,即原串可以压缩为 ,包含 个 和 个 的方案数,那么最后的答案即为 ,我们只要知道答案与 和 的大小关系即可,即判断可行性即可,不需要知道具体答案。考虑如何转移
分类讨论。如果 为 ,那么原串一定为 ,答案为 ;如果 为 ,那么可能与后面的数字构成一个整体,但最后一个位置的下一个一定要为 ,否则构成的原串不合法,答案为 。
空间可以优化,我们发现只要存四个数字即可, 表示无解, 表示一个解, 表示多个解, 表示还未计算,那么我们只需要两个二进制位就能表示值,那么一个整形可以存储十六个值,空间为原来的 。还有一种方法,用一个映射来存储值,因为有很多位置是冗余的,没必要全部用上,因此只要存必要的即可。两种方法均可。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...