#include <stdio.h>
struct group{ int value;
int weight; };
void Sort(group bag[],int num)
{
int i,j;
group temp;
for(i=; i<=num-; i++)
for(j=; j<=num-i; j++)
if(bag[j+].value>bag[j].value)
{
temp=bag[j];
bag[j]=bag[j+];
bag[j+]=temp;
}
}
int main()
{
int i,n,num,capacity,sum,m;
group bag[];
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&num,&capacity);
for(i=; i<=num; i++)
scanf("%d%d",&bag[i].value,&bag[i].weight);
Sort(bag,num);
m=sum=;
for(i=; i<=num; i++)
{
if(m+bag[i].weight<=capacity)
{
m+=bag[i].weight;
sum+=bag[i].weight*bag[i].value;
}
else
{
sum+=bag[i].value*(capacity-m); //因为m+bag[i].weight>capacity,所以bag[i].weight>capacity-m,不必考虑物品份数不够
break;
}
}
printf("%d\n",sum);
}
return ;
}

思想是怎样使放入的物体的价值总和最大。
一开始想复杂,以为不仅要贪心,还要考虑最适,纠结半天。。

看了看别人的代码,明白。可以这样理解,其实可以把这些要装入的物品分解成一根根细线(3D的样子~~,重量可以分割),然后把它们填入一个圆筒里,这样你不会先装入价值小的,而是努力把价值大的细线填入,这便是单纯的贪心了。 直到填满或物品都放进去。

NYOJ背包问题的更多相关文章

  1. nyoj 背包问题

    背包问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w< ...

  2. nyoj 106背包问题(贪心专题)

    背包问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w< ...

  3. NYOJ 106背包问题

    http://acm.nyist.net/JudgeOnline/problem.php?pid=106 背包问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现 ...

  4. nyoj 106 背包问题

    点击打开链接 背包问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v ...

  5. 背包问题--nyoj题目106

    背包问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w< ...

  6. nyoj 49-开心的小明(动态规划, 0-1背包问题)

    49-开心的小明 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:7 submit:11 题目描述: 小明今天很开心,家里购置的新房就要领钥匙了,新房 ...

  7. NYOJ 49 开心的小明(01背包问题)

    时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 小明今天非常开心.家里购置的新房就要领钥匙了,新房里有一间他自己专用的非常宽敞的房间.更让他高兴的是.妈妈昨天对他说: ...

  8. 拦截导弹 (NYOJ—79) 最长字串问题 (NYOJ—17)

    这是到动态规划的题目,属于有顺序的0 1 背包问题: 代码: #include<stdio.h> #include<string.h> ][]; //d[i][j] ]; in ...

  9. NYOJ 1007

    在博客NYOJ 998 中已经写过计算欧拉函数的三种方法,这里不再赘述. 本题也是对欧拉函数的应用的考查,不过考查了另外一个数论基本定理:如何用欧拉函数求小于n且与n互质所有的正整数的和. 记eule ...

随机推荐

  1. MySQL主主复制3

    一.创建并授权用户 在每一台(主)服务器上创建一个用户,并为之授权,使它们可以互相访问彼此的数据库 在Server-1上: 创建一个充许Server-2来访问的用户server2,密码为:server ...

  2. POJ 3974 回文串-Manacher

    题目链接:http://poj.org/problem?id=3974 题意:求出给定字符串的最长回文串长度. 思路:裸的Manacher模板题. #include<iostream> # ...

  3. BZOJ 1189 [HNOI2007]紧急疏散evacuate

    Description 发生了火警,所有人员需要紧急疏散!假设每个房间是一个N M的矩形区域.每个格子如果是'.',那么表示这是一块空地:如果是'X',那么表示这是一面墙,如果是'D',那么表示这是一 ...

  4. [转] FastMM使用详解

    FastMM使用详解 一.引言      FastMM 是适用于delphi的第三方内存管理器,在国外已经是大名鼎鼎,在国内也有许多人在使用或者希望使用,就连 Borland 也在delphi2007 ...

  5. Android 自动化测试—robotium(八) 拖拽

    本文来源于:http://xiaomaozi.blog.51cto.com/925779/933056 SeekBar控件 代码实现:http://luwenjie.blog.51cto.com/92 ...

  6. C#中==与Equals的区别

    1.字符串: string s1 = "test"; string s2 = "test"; , ); object s4 = s3; Console.Writ ...

  7. WPF DataGrid – Dynamically updating DataGridComboBoxColumn

    The Scenario I want to do a master detail like scenario where the selection in one ComboBox cell wil ...

  8. myeclipse操作记录

    myeclipse里面jsp页面里面js注释快捷键 ctrl + shift +cctrl + / MyEclipse 每次保存都要building workspace的解决方法 方法一:菜单栏-&g ...

  9. Android开发环境变量配置总结

    每次重装系统或者拿到一台新电脑都得重配Android的环境变量,每次都得上网查,索性就记在这儿吧. “系统属性->高级系统设置->环境变量” 打开环境变量配置窗口. JDK配置: 新建JA ...

  10. 【LINUX/UNIX网络编程】之简单多线程服务器(多人群聊系统)

    RT,Linux下使用c实现的多线程服务器.这个真是简单的不能再简单的了,有写的不好的地方,还希望大神轻拍.(>﹏<) 本学期Linux.unix网络编程的第四个作业. 先上实验要求: [ ...