博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NYOJ 106(贪心)
阅读量:5839 次
发布时间:2019-06-18

本文共 913 字,大约阅读时间需要 3 分钟。

 

背包问题

时间限制:
3000 ms  |  内存限制:
65535 KB
难度:
3
 
描述
现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大。
 
输入
第一行输入一个正整数n(1<=n<=5),表示有n组测试数据;
随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1<=s<=10);s表示有s个物品。接下来的s行每行有两个正整数v,w。
输出
输出每组测试数据中背包内的物品的价值和,每次输出占一行。
样例输入
13 155 102 83 9
样例输出
65 注意:因为物品可拆分,所以不必考虑单位价值相等时那个物品排前哪个后的问题,即不必二级排序
#include
typedef struct data { int w; int v; }data; int cmp(const void *a,const void *b){ return ((data*)a)->v-((data*)b)->v; }int main(){ data a[10]; int T,v,w,sum,s,m; scanf("%d",&T); while(T--) { sum=0; scanf("%d%d",&s,&m); for(int i=0;i
0;i--) if(a[i].w<=m) { sum+=a[i].v*a[i].w; m-=a[i].w; } else { sum+=m*a[i].v; m=0; } printf("%d\n",sum); } return 0; }

 

转载地址:http://mijcx.baihongyu.com/

你可能感兴趣的文章
双向循环链表
查看>>
1到N中所有和为M的组合
查看>>
php 功能函数集
查看>>
Oracle10G 监听程序当前无法识别连接描述符中所给出的 SID (DBD ERROR: OCIServerAttach)...
查看>>
obotts.txt 什么是robots.txt?Robots.txt的官方标准写法
查看>>
Jquery Ajax 基础
查看>>
webservice 存根方式
查看>>
Items not exists bom list
查看>>
ASP.NET播放Flash(.SWF)视频
查看>>
跟我一起学习ASP.NET 4.5 MVC4.0(一)
查看>>
String.Empty、string=”” 和null的区别
查看>>
Html5 Web Workers
查看>>
phpMyAdmin 3.5.4-rc1 发布
查看>>
深入浅出Visual C++动态链接库(Dll)编程
查看>>
CSS基础-引入方法,选择器,继承
查看>>
页面创建script节点方式
查看>>
读取含有命名空间xml文件内容
查看>>
string to enum 字符串转枚举
查看>>
访问控制列表(ACL)基本的配置以及详细讲解
查看>>
怎样让WinForm里的窗体禁用最大化
查看>>