A. 背包问题
来源:互联网 发布:java调用微信发送消息 编辑:程序博客网 时间:2024/05/21 17:04
现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大。
Input
第一行输入一个正整数n(1<=n<=5),表示有n组测试数据;
随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1<=s<=10);s表示有s个物品。接下来的s行每行有两个正整数v,w。
随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1<=s<=10);s表示有s个物品。接下来的s行每行有两个正整数v,w。
Output
输出每组测试数据中背包内的物品的价值和,每次输出占一行。
Sample Input
13 155 102 83 9
Sample Output
65
#include<stdio.h>#include<algorithm>using namespace std;struct m{ int v; int w;}a[15];bool cmp(m x, m y){ return x.v>y.v;}int main(){ int n; scanf("%d",&n); while(n--) { int s,m; scanf("%d%d",&s,&m); for(int i=0;i<s;i++) { scanf("%d%d",&a[i].v,&a[i].w); } sort(a,a+s,cmp); int sum=0; for(int i=0;i<s;i++) { if(m>=a[i].w) { sum+=a[i].v*a[i].w; m-=a[i].w; } else { sum+=m*a[i].v; break;//break不能忘 否则会错误 } } printf("%d\n",sum); } return 0;}
ps:简单的贪心问题
0 0
- A. 背包问题
- [hoj]1485 A Good Helper[背包问题]
- Gym - 101102A A. Coins 背包问题、数学
- hdoj problem 1203 I NEED A OFFER!(动态规划&&背包问题(01背包问题))
- WHU1463(Come to a spring outing)背包问题-DP
- poj 1976 A Mini Locomotive 有依赖的背包问题
- codeforce 189A 完全背包之必须装满问题
- HDU ACM 1203 I NEED A OFFER!->背包问题
- HDU 1203 I NEED A OFFER! 简单01背包问题
- 【多校连萌2】A 简单的背包问题【补题】
- 【无限背包】背包问题
- 背包问题---01背包
- 背包问题--部分背包
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- WinForm基础(一)
- PReprocessor Macros : 全局宏命令的应用
- net.sf.json Maven依赖配置
- Flask学习总结笔记(2)-- Hello world程序
- UserControl OnLoad事件重复触发
- A. 背包问题
- #sicily#1000.连通性问题
- API 25 (Android 7.1.1 API) widget.ListView
- 分析用户的访问偏好
- 2016 ccpc 总决赛
- Ubuntu 14.04下samba文件共享及磁盘映射
- SparkStreaming的WordCount示例及源码分析(三)
- dinic算法的改进
- 【拓扑排序】nyoj496 巡回赛