力扣5.8每日一题——状压dp
力扣5.8每日一题
题解
暴搜+剪枝也可以过,这里就不多说了。
不难发现题目是一个NP问题,最优做法应该就是状压dp。
这里就讲一下状压dp的做法。
状态
dp[i][j]: 前i个工人完成所有工作的完成状态为j的最优解
状态转移方程
考虑第i个工人完成工作的所有情况
dp[i][j]=min(dp[i][j],max(dp[i-1][state],sum[j-state]))
state为j的状态子集
sum[j-state]表示state状态的补集
边界条件
dp[0][i]=sum[i] 第一个工人的完成状态
代码
class Solution {public:int sum[5007];int dp[15][5007];int minimumTimeRequired(vector<int>& jobs, int k) {int len=jobs.size();for(int i=1;i<(1<<len);i++){int x = __builtin_ctz(i), y = i - (1 << x);sum[i] = sum[y] + jobs[x];}for(int i=0;i<(1<<len);i++) dp[0][i]=sum[i];for(int i=1;i<k;i++){for(int j=1;j<(1<<len);j++){int MIN=0x3f3f3f3f;for(int state=j;state;state=(state-1)&j) MIN=min(MIN,max(dp[i-1][state],sum[j-state]));dp[i][j]=MIN;}}return dp[k-1][(1<<len)-1];}
};
力扣5.8每日一题——状压dp相关推荐
- 力扣牛客每日刷题(Python解法持续更新)
力扣牛客每日刷题(持续更新) 初试结束第15天, 之前简单的处理了部分毕设方面的任务, 对接下来的学习做了个简单的规划 决定每天开始刷几道力扣题提高一下算法的理解,不能让之前学的数据结构都忘记了 每道 ...
- 【思维题 状压dp】APC001F - XOR Tree
可能算是道中规中矩的套路题吧-- Time limit : 2sec / Memory limit : 256MB Problem Statement You are given a tree wit ...
- [状压dp] 蒙德里安的梦想(模板题+状压dp)
文章目录 0. 前言 1. 状压dp 模板题 0. 前言 状压 dp 就是采用二进制数保存状态,方便进行位运算操作.例如 八皇后.八数码问题也都是采用了状态压缩的思想来使用一个二进制数唯一对应集合中的 ...
- [状压dp] 最短Hamilton路径(模板题+状压dp)
文章目录 0. 前言 1. 状压dp 模板题 0. 前言 状压 dp 就是采用二进制数保存状态,方便进行位运算操作.例如 八皇后.八数码问题也都是采用了状态压缩的思想来使用一个二进制数唯一对应集合中的 ...
- 湖南多校补题 状压dp
C - Greetings! 题目链接 题目大意 给n种信,每种信wi,hi,pi 分别代表长.宽.数量. 让选择k种信封来装这些信,每个信封里装一个. 如果把w,h的信装到了x,y的信封里,那么造成 ...
- 【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)】小乐乐搭积木(状压dp)
题干: 小乐乐想要给自己搭建一个积木城堡. 积木城堡我们假设为n*m的平面矩形. 小乐乐现在手里有1*2,2*1两种地砖. 小乐乐想知道自己有多少种组合方案. 输入描述: 第一行输入整数n,m.(1& ...
- [状压dp] 小国王(状压dp+下标映射技巧)
文章目录 0. 前言 1. 状压dp+棋盘式(基于连通性) 0. 前言 相关: [状压dp] 蒙德里安的梦想(模板题+状压dp) 1. 状压dp+棋盘式(基于连通性) 1064. 小国王 思路: 状压 ...
- 【每日DP】day2、P1879 [USACO06NOV]Corn Fields G玉米地(状压DP模板题)难度⭐⭐⭐★
昨天的每日DP我还在写01背包,今天就到状压DP了,真刺激. P1879 [USACO06NOV]Corn Fields G 题目链接 输入 2 3 1 1 1 0 1 0 输出 9 一道简单的状压D ...
- 《LeetCode力扣练习》第96题 不同的二叉搜索树 Java
<LeetCode力扣练习>第96题 不同的二叉搜索树 Java 一.资源 题目: 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回 ...
- 《LeetCode力扣练习》第75题 颜色分类 Java
<LeetCode力扣练习>第75题 颜色分类 Java 一.资源 题目: 给定一个包含红色.白色和蓝色.共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按 ...
最新文章
- 基于LightGBM算法实现数据挖掘!
- Windows Azure HandBook (5) Azure混合云解决方案
- Flv网络播放器制作全攻略
- eclipse 安装jetty时遇到的问题
- 低功耗蓝牙BLE对应Gatt的UUID
- 笔记-信息系统开发基础-CMMI组织能力成熟度模型-连续式和阶梯式的分组
- 读取网络数据缓存在本地 流程图
- STC89C52RC内部EEPROM编程
- 第七章数组答案C语言,c语言复习题及答案第七章数组.docx
- 6-7Pytorch搭建cifar10训练脚本(上)
- Linux中ping不通外网解决方案
- SpringMVC+idea+maven搭建项目
- 解决debian (Friendly ARM 嵌入式板)的sudo等一部分命令无法TAB补全
- 自动化检测工具助力GJB 8114-2013 C/C++语言编程安全子集标准落地应用
- 16进制颜色代码转RGB代码
- jsp text 水印_java实现图片上加文字水印(SpringMVC + Jsp)
- Java毕业设计_基于WEB的多媒体素材管理库的设计与开发
- LevelDB使用入门
- Tensorboard可视化
- 天津大学计算机专业推免加分细则,天津大学计算机科学与技术学院(专业学位)计算机技术保研细则...