https://leetcode-cn.com/contest/weekly-contest-114/problems/tallest-billboard/

给出一个集合,询问能否挑出两个不重叠的子集,使得两个子集内的数字和一样,求数字和最大是多少。

一开始枚举所有集合然后dp一波果断T了。

正解是f(i,j)表示前i个数字,组成的两个集合差为j的时候较大的集合内的数字和,然后枚举一下三种情况dp即可。

一开始少算了一种情况,是把第i加在较小的集合里,仍没超过较大的集合。

 class Solution {
public:
#define inf 0x3f3f3f3f
int tallestBillboard(vector<int>& rods) {
int f[][];
memset(f,-inf,sizeof(f));
f[][]=;
for(int i=;i<rods.size();++i){
for(int j=;j<=;++j){
f[i+][j]=max(f[i+][j],f[i][j]);
if(j>=rods[i]&&f[i][j-rods[i]]!=-inf)f[i+][j]=max(f[i+][j],rods[i]+f[i][j-rods[i]]);
if(rods[i]>=j&&f[i][rods[i]-j]!=-inf)f[i+][j]=max(f[i+][j],j+f[i][rods[i]-j]);
if(j+rods[i]<=&&f[i][j+rods[i]])f[i+][j]=max(f[i+][j],f[i][j+rods[i]]);
}
}
return max(,f[rods.size()][]);
}
};

最新文章

  1. vs2013 无法打开 源 文件 &quot;SDKDDKVer.h&quot;
  2. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
  3. 【安全】requests和BeautifulSoup小试牛刀
  4. T-SQL切割字符串方法小结 2
  5. matlab GUI之常用对话框(四)-- 输入对话框 inputdlg、目录对话框 uigetdir、列表对话框 listdlg
  6. extjs_03_grid(添加数据)
  7. Hadoop 使用FileSystem API 读取数据
  8. Java第六周学习总结
  9. 小技巧-WEB API第一次加载很慢
  10. 当你「ping 一下」的时候,你知道它背后的逻辑吗?
  11. ubuntu18.04搭建nfs
  12. Disruptor 详解
  13. TCP是如何保证可靠传输的
  14. dubbo面试题,会这些说明你真正看懂了dubbo源码
  15. js中判断是否包含某个字符串
  16. activiti实战--第一章--认识Activiti
  17. HTML5 Canvas ( 图形的阴影 ) shadowColor, shadowOffsetX, shadowOffsetY, shadowNlur
  18. Thunder——Final冲刺中间产物
  19. MySQL 分库备份
  20. iostat -x命令诊断

热门文章

  1. 谷歌PM面试官告诉你,如何成功拿到理想offer
  2. Docker:镜像构建与进入容器总结
  3. json.dumps与json.dump的区别 json.loads与json.load的区别
  4. cocos2dx JS 图片精灵添加纹理缓存
  5. OAuth2认证和授权:ClientCredentials认证
  6. phpstorm----------phpstorm2017基本使用
  7. html5 javascript 表单练习案例
  8. Python 两个星号(**)的 参数
  9. tiny6410的启动参数
  10. webform ajax 异步请求