01背包问题

dfs解法

 #include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath> using namespace std ; const int N = ; int v[N],w[N] ;
int n,V ;
int ans = ; void dfs(int idx,int h,int m){
if(idx == n){
return ;
}
dfs(idx+,h,m) ;//第一个分支表示不选当前物品
if(h+v[idx]<=V){//只有当前背包容量大于等于当前物品体积,才进入第二个分支
if(ans<m+w[idx]){
ans = m + w[idx] ;
}
dfs(idx+,h+v[idx],m+w[idx]) ;
}
} int main(){
cin >> n >> V ; for(int i=;i<n;i++){
cin >> v[i] ;
}
for(int i=;i<n;i++){
cin >> w[i] ;
} dfs(,,) ; cout << ans << endl ; return ;
}

...

01背包问题(dfs+剪枝)的更多相关文章

  1. hdu 5887 Herbs Gathering (dfs+剪枝 or 超大01背包)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5887 题解:这题一看像是背包但是显然背包容量太大了所以可以考虑用dfs+剪枝,贪心得到的不 ...

  2. [Swust OJ 465]--吴奶奶买鱼(0-1背包+dfs)

    题目链接:http://acm.swust.edu.cn/problem/465/ 还有一道题只是描述不一样,方法一模一样(http://acm.swust.edu.cn/problem/644/) ...

  3. python 回溯法 子集树模板 系列 —— 3、0-1背包问题

    问题 给定N个物品和一个背包.物品i的重量是Wi,其价值位Vi ,背包的容量为C.问应该如何选择装入背包的物品,使得放入背包的物品的总价值为最大? 分析 显然,放入背包的物品,是N个物品的所有子集的其 ...

  4. 动态规划专题 01背包问题详解 HDU 2546 饭卡

    我以此题为例,详细分析01背包问题,希望该题能够为大家对01背包问题的理解有所帮助,对这篇博文有什么问题可以向我提问,一同进步^_^ 饭卡 Time Limit: 5000/1000 MS (Java ...

  5. 201871010129-郑文潇 实验二 个人项目—《D{0-1}背包问题 》项目报告

    项目 内容 课程班级博客链接 课程链接 这个作业要求链接 [作业要求](https://www.cnblogs.com/nwnu-daizh/p/14552393.html) 我的课程学习目标 1.掌 ...

  6. *HDU1455 DFS剪枝

    Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  7. POJ 3009 DFS+剪枝

    POJ3009 DFS+剪枝 原题: Curling 2.0 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16280 Acce ...

  8. poj 1724:ROADS(DFS + 剪枝)

    ROADS Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10777   Accepted: 3961 Descriptio ...

  9. 01背包问题:POJ3624

    背包问题是动态规划中的经典问题,而01背包问题是最基本的背包问题,也是最需要深刻理解的,否则何谈复杂的背包问题. POJ3624是一道纯粹的01背包问题,在此,加入新的要求:输出放入物品的方案. 我们 ...

随机推荐

  1. centos7双网卡绑定

    # 概念 服务器存在多块网卡时,可以通过bond来实现多块网卡并在一起使用: # 模式 mode 0:load balancing (round-robin) Support:需要Switch支持 & ...

  2. 74HC573锁存器应用(附英文手册)

    锁存器(LATCH)概念 锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态. 锁存,就是把信号暂存以维持某种电平状态. 锁存器作用: 缓存 完成高速的控 ...

  3. Golang 读写文件

    读文件 func ReadFile_v1(filename string) { var ( err error content []byte ) fileObj,err := os.Open(file ...

  4. Golang 传递任意类型的切片

    肯定有这样的一种场景,写一个函数,该函数可以接收任意类型的切片,完成相应的功能. 就好比这种情况 intSlice := []int{1,2,3,4,5,6,7,8} strSlice := []st ...

  5. Windows状态栏图标显示异常

    1.新建TXT文档 2.写上以下代码 taskkill /im explorer.exe /f cd /d %userprofile%\appdata\local del iconcache.db / ...

  6. todolist 包含本地存储知识

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Vue v-bind与v-model的区别

    v-bind    缩写 : 动态地绑定一个或多个特性,或一个组件 prop 到表达式. 官网举例   <!-- 绑定一个属性 -->   <img v-bind:src=" ...

  8. 【转】Dubbo分布式服务框架

    Dubbo是一个分布式服务框架,致力于提供高性能和透明化的远程服务调用方案. Dubbo架构 官网架构图: 节点角色说明: Provider: 暴露服务的服务提供方. Consumer: 调用远程服务 ...

  9. localStorage的增删改查

    var _localStorage = window.localStorage; undefined /* 增 */ _localStorage.name = '张泰松' "张泰松" ...

  10. 当ABAP遇见普罗米修斯

    Jerry每次在工作场合中同Prometheus(普罗米修斯)打交道时,都会"出戏",因为这个单词给我的第一印象,并不是用go语言实现的微服务监控利器,而是名导雷德利·斯科特(Ri ...