当前位置:网站首页>956. 最高的广告牌 状压 dp
956. 最高的广告牌 状压 dp
2022-07-19 19:04:00 【钰娘娘】
956. 最高的广告牌
你正在安装一个广告牌,并希望它高度最大。这块广告牌将有两个钢制支架,两边各一个。每个钢支架的高度必须相等。
你有一堆可以焊接在一起的钢筋
rods
。举个例子,如果钢筋的长度为1
、2
和3
,则可以将它们焊接在一起形成长度为6
的支架。返回 广告牌的最大可能安装高度 。如果没法安装广告牌,请返回
0
。示例 1:
输入:[1,2,3,6] 输出:6 解释:我们有两个不相交的子集 {1,2,3} 和 {6},它们具有相同的和 sum = 6。示例 2:
输入:[1,2,3,4,5,6] 输出:10 解释:我们有两个不相交的子集 {2,3,5} 和 {4,6},它们具有相同的和 sum = 10。示例 3:
输入:[1,2] 输出:0 解释:没法安装广告牌,所以返回 0。提示:
0 <= rods.length <= 20
1 <= rods[i] <= 1000
sum(rods[i]) <= 5000
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/tallest-billboard
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
做题结果
成功,但是效果不好,用了状压 dp, 这题范围上再大一些,状压就无法通过了
方法:状压dp
1. 求出所有子集的和
2. 取一半子集的反集的子集,如果两者和相等就加入答案
class Solution {
public int tallestBillboard(int[] rods) {
int ans = 0;
int n = rods.length;
int s = 0;
for (int rod : rods) {
s += rod;
}
int[] sums = new int[1 << n];
int mask = (1 << n);
for (int i = 1; i < mask; i++){
int last =Integer.bitCount( (i&(-i))-1);
int pre = i &(i-1);
sums[i]=sums[pre]+rods[last];
}
for(int i = 1; i < mask/2; i++){
int reverse = (i^(mask-1));
int sum = sums[i];
if(sum<=ans||sum>s/2||sums[reverse]<=ans)continue;
for(int j = reverse; j > 0; j = (reverse&(j-1))){
if(sum==sums[j]) {
ans = sum;break;
}
}
}
return ans;
}
}
边栏推荐
- Wei Lai, how many cards are there to play?
- 4、图网络分类
- 【Liunx】wait函数 和 waitpid函数
- Detailed explanation of SQL injection Foundation
- 【全局唯一id】分库分表之后,id 主键如何处理?
- Analyze Intel's path of continuous innovation in five dimensions!
- 声网传输层协议 AUT 的总结与展望丨Dev for Dev 专栏
- Get the ID of the record just added
- AUTOSAR从入门到精通100讲(105)-功能安全之AUTOSAR Timing的保护机制
- 又一 AI 公司(思必驰)申请上市:三年亏损 8.3 亿、营收 6.6 亿,研发投入 6.9 亿
猜你喜欢
iNFTnews | 音樂在Web3中的未來
Uniapp uses local storage to transfer values between pages
[Network Communication II] TCP reference model
【无标题】
数组、字符串、对象相关方法以及布尔值判断
美容院店务管理系统帮助门店管理哪些方面 ?
GEE(7):GEE插件Open Earth Engine extension提高效率
【JVM学习02】JVM的垃圾回收
文献阅读十一—OpenAttack: An Open-source Textual Adversarial Attack Toolkit
【文献笔记】PointMLP
随机推荐
Docker 搭建 MySQL 主从复制
Innftnews | l'avenir de la musique sur le Web 3
三星Exynos 9820内核照片曝光:8nm工艺下面积大增,集成双核NPU!
iNFTnews | 拥有99年历史的《TIME》正引领传统媒体进军NFT
物联网技术在物联网产业格局的分布与应用
[Network Communication II] TCP reference model
为什么官方不建议使用uuid做MySQL主键
Jianan Yunzhi completed a new round of financing, with a valuation of billions of dollars!
安装svn工具tortoisesvn
【直播回顾】AI客服“应势而变”,人机对话可以更轻松
当我们谈论不可变基础设施时,我们在谈论什么
OpenCV 学习资料分享:中文、图文、代码注释并茂,建议收藏
大乐透历史中奖号码分析
Icml2022 tutorial | causal fairness analysis, 68 Pages pdf
5、复杂图网络
CPG控制网络入门
Two methods of selecting objects in CAD frame, AutoCAD -- deleting duplicate line segments
华为5.2亿、新华三4.4亿、浪潮2.4亿、联想2.3亿、深信服2亿、戴尔1.7亿、SmartX 0.7亿、曙光0.6亿
What aspects does the beauty salon store management system help store management?
孙正义万字访谈实录:未来30年一切将被重新定义!