正题


题目大意

nnn个砝码,选择若干个要求重量不超过ccc的情况下最重。


解题思路

拆成两部分来dfsdfsdfs,第一部分将答案加入setsetset。

第二部分对于每个答案在setsetset中查询。

时间复杂度O(2n2logn)O(2^{\frac{n}{2}}\ log\ n)O(22n​ log n)


codecodecode

#include<cstdio>
#include<algorithm>
#include<set>
#define ll long long
using namespace std;
set<int> s;
ll n,c,mins,maxs,w[50];
void dfs1(ll x,ll z){if(z>c) return;if(x>n/2){mins=min(mins,z);s.insert(z);return;}dfs1(x+1,z+w[x]);dfs1(x+1,z);
}
void dfs2(ll x,ll z){if(z+mins>c) return;if(x>n){ll k=*--s.upper_bound(c-z);maxs=max(maxs,z+k);return;}dfs2(x+1,z+w[x]);dfs2(x+1,z);
}
int main()
{scanf("%lld%lld",&n,&c);for(ll i=1;i<=n;i++)scanf("%lld",&w[i]);dfs1(1,0);dfs2(n/2+1,0);printf("%lld",maxs);
}

jzoj1252,P5194-天平【dfs,set】相关推荐

  1. 欢乐纪中某B组赛【2019.1.26】

    前言 空间开小导致无法AKQVQAKQVQAKQVQ 成绩 RankRankRank是有算别人的 RankRankRank PersonPersonPerson ScoreScoreScore AAA ...

  2. LA3403天平难题(4个DFS)

    题意:      给出房间的宽度r和每个吊坠的重量wi,设计一个尽量宽但宽度不能超过房间宽度的天平,挂着所有挂坠,每个天平的一段要么挂这一个吊坠,要么挂着另一个天平,每个天平的总长度是1,细节我给出题 ...

  3. UVa12166 Equilibrium Mobile修改天平(二叉树+dfs)

    题目大意:给定一个深度不超过16的二叉树,代表一个天平,问至少修改多少个秤砣,才能使天平平衡. 题目意思很简单,就是找一个可以使整个天平修改次数最少的点,一个点可以确定整个天平,开始我就用的这个思路, ...

  4. 洛谷 P5194 [USACO05DEC]Scales S(DFS)

    文章目录 题目描述 输入格式 输入输出样例 分析 AC的C++代码 题目描述 约翰有一架用来称牛的体重的天平.与之配套的是 NNN ( 1≤N≤10001 \leq N \leq 10001≤N≤10 ...

  5. (二叉树DFS)天平UVa 839

    题目 输入一个树状天平,根据力矩相等原则判断是否平衡.如图6-5所示,所谓力矩相等,就是WlDl=WrDr,其中Wl和Wr分别为左右两边砝码的重量,D为距离.采用递归(先序)方式输入:每个天平的格式为 ...

  6. bzoj 1673: [Usaco2005 Dec]Scales 天平(DFS)

    1673: [Usaco2005 Dec]Scales 天平 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 695  Solved: 253 [Subm ...

  7. BZOJ 1673 [Usaco2005 Dec]Scales 天平:dfs 启发式搜索 A*搜索

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1673 题意: 有n个砝码(n <= 1000),重量为w[i]. 你要从中选择一些砝 ...

  8. Codeforces Round #308 (Div. 2) C. Vanya and Scales dfs

    题目链接: http://codeforces.com/contest/552/problem/C 题意: 给你100个砝码,第i个砝码质量是w^i,然后问你能不能在有m的情况下,左边和右边都放砝码, ...

  9. LA3403 天平难题

    题意:      给出房间的宽度r和每个吊坠的重量wi,设计一个尽量宽但宽度不能超过房间宽度的天平,挂着所有挂坠,每个天平的一段要么挂这一个吊坠,要么挂着另一个天平,每个天平的总长度是1,细节我给出题 ...

最新文章

  1. 二叉树的前序,中序,后序的递归、迭代实现
  2. 遍历百万级Redis的键值的曲折经历
  3. 人工智能模型数据泄露的攻击与防御研究综述
  4. python读取数据库数据类型有哪些_数据库varchar 相当于python里的哪个类型
  5. vscode进行远程服务器 An SSH installation couldn't be found、
  6. Jupyter 在线python编辑器
  7. 怎么自学python编程-零基础如何自学编程?
  8. 【多线程】学习记录七种主线程等待子线程结束之后在执行的方法
  9. vue 实例数据绑定 指令 事件
  10. vs code为什么不出现小黑框_为什么越来越多商家开通微信小程序商城?
  11. 小程序云开发——列表页和详情页
  12. 黑莓手机安装linux,Ubuntu下善用黑莓(备份,同步,装卸备份应用程序)
  13. 基于SRIO的FPGA与DSP间高速数据传输
  14. 【虚拟机数据恢复】VMware ESX SERVER数据恢复案例
  15. 18.Consent 实现思路介绍
  16. QT 利用QAxObject大数据读写excel文件
  17. mysql dbcp 配置文件_数据库连接池DBCP使用方式
  18. VS报错之混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...
  19. ubuntu20.04 RTX2060||nvidia显卡驱动|cuda|cudnn|pytorch
  20. 这些数据合并的神操作,你掌握几个?

热门文章

  1. java context.write_Channel.write() 和 ChannelHandlerContext.write() 的区别
  2. 公众号滑动图代码_实用技巧:公众号封面图如何提取?
  3. java实用教程——组件及事件处理——ItemEvent事件(设置字体类型)
  4. 紧跟月影大佬的步伐,一起来学习如何写好JS(上)
  5. 简述tcp协议三报文握手过程_TCP协议中的三次握手和四次挥手(图解)
  6. [Spring5]IOC容器_Bean管理XML方式_注入集合类型属性
  7. [Java基础]Stream流终结操作之forEachcount
  8. 数位dp总结 之 从入门到模板(stO)
  9. python哪个方向工资高_【看完这五大Python就业方向,你选择哪个?】- 环球网校
  10. 数据结构---模式匹配