标签:复杂度 改版 元素 之间 进制 复杂 方格取数 集合 滚动数组
最近一段时间算是学了一些状态压缩的题目,在这里做个小结吧
首先是炮兵布阵类题目,这类题目一开始给定一个矩形,要求在上面放置炮兵,如果在一格放了炮兵那么周围的某些格子就不能放炮兵,求最大能放置炮兵的数量
poj1185炮兵布阵
hdu2176 炮兵布阵修改版
poj3254 炮兵布阵弱化版
poj1565 方格取数
然后是状态集合类的题目,这类题目给定一个集合的元素,要求重排列以达到最大化收益,即从已知状态推出未知状态,通常需要处理出元素之间的两两对应关系
zoj3471 模板
poj2817 在枚举集合的基础上升维
poj2241 朴素LIS算法,也是枚举两两之间的关系
poj2836 也是枚举两两关系,但是这题的矩形其实就是两个点之间的关系
轮廓线类题,其实类似炮兵布阵等题目都可以用轮廓线解,并且时间复杂度较优,但常见的应该还是铺地砖等题目
poj2411 模板题
其他题
poj2441 通过牛少的状态推出牛多的状态,利用滚动数组实现
hdu4064 三进制的状态压缩,但是实质上有点类似于炮兵布阵类题目,通过上下两行状态的配对求出答案,但是本题的状态需要通过dfs搜出,并不是枚举状态
标签:复杂度 改版 元素 之间 进制 复杂 方格取数 集合 滚动数组
原文地址:https://www.cnblogs.com/zsben991126/p/10372409.html