时间限制:3500 ms  |  内存限制:65535 KB
难度:4
描述

直接说题意,完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是c,价值是w。求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。本题要求是背包恰好装满背包时,求出最大价值总和是多少。如果不能恰好装满背包,输出NO

输入
第一行: N 表示有多少组测试数据(N<7)。
接下来每组测试数据的第一行有两个整数M,V。 M表示物品种类的数目,V表示背包的总容量。(0<M<=2000,0<V<=50000)
接下来的M行每行有两个整数c,w分别表示每种物品的重量和价值(0<c<100000,0<w<100000)
输出
对应每组测试数据输出结果(如果能恰好装满背包,输出装满背包时背包内物品的最大价值总和。 如果不能恰好装满背包,输出NO)
样例输入
2
1 5
2 2
2 5
2 2
5 1
样例输出
NO

1

思路:基本同0/1背包,就是循环的顺序发生了一些改变,注意对dp[i]的初值处理的问题。AC代码如下:

#include<bits/stdc++.h>
#include<iostream>
#define Maxn 100002
#include<string.h>
#include<algorithm>
using namespace std;
int dp[Maxn];
struct {  int Wi,Pi;
}node[50000];
int main(){int t;cin>>t;while(t--){int N,W;memset(dp,-100,sizeof(dp));dp[0]=0;cin>>N>>W;  for(int i=1;i<=N;i++)  cin>>node[i].Wi>>node[i].Pi;  for(int i=1;i<=N;i++){  for(int j=node[i].Wi;j<=W;++j){  dp[j]=max(dp[j],dp[j-node[i].Wi]+node[i].Pi);  }  }  if(dp[W]>=0)cout<<dp[W]<<endl;elsecout<<"NO"<<endl; } return 0;
}  

NY 完全背包 311相关推荐

  1. NYOJ 311 完全背包

    完全背包 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 直接说题意,完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用.第i种物品的体积是c,价值是w. ...

  2. NYOJ 311 完全背包

    #include<stdio.h> #include<string.h> const int max=50001; int dp[max]; #define max(a,b) ...

  3. 【算法】动态规划+“背包九讲”原理超详细讲解+常见dp问题(9种)总结

    目录 一.动态规划(DP) 二.背包九讲 (1)完全背包 P1616 疯狂的采药(完全背包) (2)01背包 滚动数组 一维数组 P1048 采药(01背包) 01背包表格图示 (3)多重背包 整数拆 ...

  4. 【01背包】最大约数和(jzoj 2126)

    最大约数和 题目大意: 选若干个正整数,和不小于S,使每个数的因数(不包括本身)之和最大 样例输入 11 样例输出 9 数据范围限制 对于30%的数据, S<=10: 对于100%的数据, S ...

  5. [NKNY]寒假培训《NY寒假有奖欢乐赛 》总结

    说明 NY寒假有奖欢乐赛 类别 日常作业题目列表 考试规则 信息学奥赛规则 开始时间 2022/1/22 9:00:00 结束时间 2022/1/22 12:20:00 总时长 3小时 20分钟 参考 ...

  6. 洛谷 P4389 付公主的背包 多项式exp

    题目描述 这个背包最多可以装10510^5105大小的东西 付公主有nnn种商品,她要准备出摊了 每种商品体积为ViV_iVi​,都有10510^5105件 给定mmm,对于s∈[1,m]s\in [ ...

  7. HDU 1248 寒冰王座(全然背包:入门题)

    HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...

  8. 单调队列多重背包时间复杂度O(vn)

    版权声明:本文为博主原创文章,未经博主允许不得转载. 多重背包问题: 有N种物品和容量为V的背包,若第i种物品,容量为v[i],价值为w[i],共有n[i]件.怎样装才能使背包内的物品总价值最大? 网 ...

  9. 浅说——九讲背包之01背包

    所谓九讲,也就是: 0/1背包 0/1背包降维 完全背包 多重背包(二进制优化) 混合背包 二维费用背包 分组背包 有依赖的背包 背包的方案总数\背包的具体方案路径 0/1背包: [问题描述](经典) ...

最新文章

  1. iOS中常见的图片压缩方法
  2. android m版本 root,Android M 最大看点:又少了一个 ROOT 的理由
  3. wxWidgets:wxWebView类用法
  4. 九个步骤让你成为PHP专家
  5. Java进击C#——应用开发之Asp.net MVC
  6. SQLServer当数据导入平面文件
  7. mysql数据库行业应用_腾讯云发布MySQL 8.0数据库 可应用至更多行业场景
  8. ASP.NET Core IHostEnvironment和IApplicationLifetime介绍
  9. 分布式系统原理 之5 日志技术
  10. 分享几个路由器设置小技巧,总有用得到的一天!
  11. 如何正确的通过 C++ Primer 学习 C++?(转自知乎)
  12. 使用supervisor使Laravel的queue保持后台常驻
  13. 【转】前端开发必备网站
  14. android 布局长度单位深入研究
  15. 【C++】大小端转换
  16. 【应用统计学】简单随机抽样的区间估计和样本容量的确定
  17. OpenWRT配置 -- 网络配置network文件
  18. 移动硬盘损坏怎么恢复?看完再也不怕丢失数据
  19. php guzzle的基本使用
  20. OsgEarth中设置模型运动路径,并绘制雷达扫描、动态实时绘制运动轨迹、跟随彩带

热门文章

  1. moment js常用格式化
  2. C++ Primer 学习笔记14 顺序容器
  3. 太阳能控制器负载无电压
  4. Java Cglib 动态代理intercept的参数含义
  5. 使用Grafana+Prometheus配置服务器监控
  6. 昆仑通态触摸屏通讯ABB ACS530变频器恒压供水 ABB变频器恒压供水触摸屏通讯程序
  7. WinRAR 5.91(64位) 去除广告弹框
  8. python怎么写翻译器_书写一个翻译器-python
  9. 读书笔记.:硝烟中的Scrum和XP
  10. 关于联咏(novatek)平台上使用NAND Flash的问题