![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
状压DP
文章平均质量分 70
状态压缩动态规划
阿.荣.
勿弃
展开
-
leetcode 5869.两个回文子序列长度的最大乘积【状压DP】
给你一个字符串 s ,请你找到 s 中两个 不相交回文子序列 ,使得它们长度的 乘积最大 。两个子序列在原字符串中如果没有任何相同下标的字符,则它们是 不相交 的。请你返回两个回文子序列长度可以达到的 最大乘积 。子序列 指的是从原字符串中删除若干个字符(可以一个也不删除)后,剩余字符不改变顺序而得到的结果。如果一个字符串从前往后读和从后往前读一模一样,那么这个字符串是一个 回文字符串 。示例 1:![在这里插入图片描述](https://img-blog.csdnimg.cn/c75f6433c7原创 2021-09-12 21:13:02 · 158 阅读 · 0 评论 -
leetcode 1986.完成任务的最少工作时间段【状压DP】
你被安排了 n 个任务。任务需要花费的时间用长度为 n 的整数数组 tasks 表示,第 i 个任务需要花费 tasks[i] 小时完成。一个 工作时间段中,你可以 至多 连续工作 sessionTime 个小时,然后休息一会儿。你需要按照如下条件完成给定任务:如果你在某一个时间段开始一个任务,你需要在 同一个 时间段完成它。完成一个任务后,你可以 立马 开始一个新的任务。你可以按 任意顺序 完成任务。给你 tasks 和 sessionTime ,请你按照上述要求,返回完成所有任务所需要的 最原创 2021-09-08 23:37:16 · 677 阅读 · 0 评论 -
动态规划之状压DP
状压DP:状态压缩动态规划,就是我们俗称的状压DP,是利用**计算机二进制(三进制等)**的性质来描述状态的一种DP方式。1.状态压缩使用某种方法,简明扼要的以最小代价表示某种状态,通常是用一串01数字(二进制数)来表示各个点的状态。这就要求使用状态压缩的对象的点的状态必须只有两种,0或1。当有三种状态时用也可用三进制来表示。2.使用条件适用的题目符合以下条件:解法需要保存一定的状态数据(表示一种状态的一个数据值),每个状态数据通常情况下是可以通过2进制来表示的。这就要求状态数据的每个单元只有原创 2021-09-08 23:21:35 · 120 阅读 · 0 评论