传送门

题意:

有n个砝码(n <= 1000),重量为w[i]。需从中选择一些砝码,使得总重量最大而不超过c。w[i]按单调不降顺序给出,保证w[i] >= w[i-1]+w[i-2] (i >= 3)。

题解:

有题目那条类似斐波那契数列的性质,从大往小DFS。启发式剪枝:当剩余所有砝码都选仍不足之前的最大值时直接return。

P.S.对于每个砝码选不选,必须先执行“选”的情况再做“不选”的情况,否则会大幅增大DFS树甚至TLE。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int MAXN=1004;
int n;
ll w[MAXN],sum[MAXN]={0},m,ans=0;
void Astar(int pos,ll cur) {if (pos>n) {ans=max(ans,cur);return ;}if (cur+sum[n]-sum[pos-1]<=ans) return ;//启发式剪枝if (cur+w[pos]<=m) Astar(pos+1,cur+w[pos]);//先选Astar(pos+1,cur);//后不选
}
int main() {scanf("%d%lld",&n,&m);for (int i=n;i;--i) scanf("%lld",&w[i]);for (int i=1;i<=n;++i) sum[i]=sum[i-1]+w[i]; Astar(1,0);printf("%lld\n",ans);return 0;
}

bzoj 1673(A*)相关推荐

  1. BZOJ 1085(IDA*)

    题面 传送门 分析 首先,直接搜索肯定会TLE 很容易想到用迭代加深的方法,限定搜索深度 但是,这样仍然不够,需要用启发式的方法优化 我们设计一个估价函数f(x)=g(x)+h(x)f(x)=g(x) ...

  2. bzoj 1664 (贪心)

    [Usaco2006 Open]County Fair Events 参加节日庆祝 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 487  Solved ...

  3. BZOJ 1207(dp)

    传送门 题面: 1207: [HNOI2004]打鼹鼠 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4197  Solved: 2019 [Sub ...

  4. bzoj 2301(Mobius)

    推出式子然后分块求和(还需使用一下容斥原理). 分析:令f(n,m,i)表示在1<=x<=n,1<=y<=m,满足gcd(x,y)是i的(x,y)的对数. ans=f(c,d, ...

  5. BZOJ1937 / BZOJ 3118(单纯形)

    传送门 题解: KM?网络流建模?不存在的. 单纯形立水之. (注意对偶之后跑得更快,取反大概要慢8倍). BZOJ3118: #include <bits/stdc++.h> using ...

  6. BZOJ 1503 郁闷的出纳员(splay)

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1503 题意:给出一个数列(初始为空),给出一个最小值Min,当数列中的数字小于Min时自动 ...

  7. bzoj 3118: Orz the MST(单纯形)

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3118 题意:给出一个图以及图中指定的n-1条边组成的生成树.每条边权值加1或者减去 ...

  8. BZOJ 1049 数字序列(LIS)

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1049 题意:给出一个数列A,要求:(1)修改最少的数字使得数列严格递增:(2)在( ...

  9. 【BZOJ】 2463 [中山市选2009]谁能赢呢?(博弈论)

    Description 小明和小红经常玩一个博弈游戏.给定一个n×n的棋盘,一个石头被放在棋盘的左上角.他们轮流移动石头.每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子 ...

最新文章

  1. BZOJ4668: 冷战 [并查集 按秩合并]
  2. 看了这一篇,就不用看别的——Java中Object关于锁的的三个方法:wait,notify,notifyAll的作用
  3. php sphinx api调用,php调用Sphinx
  4. 语言常用c100单词,英语口语练习_夏普新款PW-C100-G电子词典测评_沪江英语
  5. 一台机器上安装两个tomcat
  6. java 判断全角_Java如何判断字符串中包含有全角,半角符号
  7. docker load tar.gz包失败解决方法
  8. matlab pascal函数,pascal常用函数较全
  9. UNIX网络编程阅读建议
  10. 数值分析 有效数字计算
  11. 转载:图像噪声的成因分类与常见图像去噪算法简介
  12. Ros自定义消息及使用
  13. Markdown 格式参考-中文文案排版指北
  14. 某制造业大厂企业信息防泄密案例
  15. 联想计算机的控制面板在哪,Win10创意者的控制面板在哪?
  16. #力扣 LeetCode1646. 获取生成数组中的最大值 @FDDLC
  17. 关于SQL SERVER注释快捷键
  18. 煤化工专用阀门有哪些?
  19. 【译】2021 Go 趋势报告
  20. 荣耀7x Android8,荣耀7X升级安卓8.0

热门文章

  1. 苹果屏蔽更新_iPhone 不想更新系统怎么办?一招屏蔽
  2. k8s学习-CKA真题-sidecar代理
  3. 2016.09-2017.08 一年总结 浪来浪去
  4. Biblatex 引用样式
  5. 湖北省计算机科学与技术排名,湖北省排名前十的大学:湖北最有实力的大学
  6. html5新增标签——新增语义化标签、新增表单控件 、多媒体
  7. SQL增加语句的方法
  8. 大咖Live | 视见医疗科技王少彬:宫颈癌放疗精准临床靶区勾画实战经验分享
  9. emeditor所有的快捷键
  10. 计算机技术基础知识,计算机技术基础知识课件