NYOJ背包问题
#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背包问题的更多相关文章
- nyoj 背包问题
背包问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w< ...
- nyoj 106背包问题(贪心专题)
背包问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w< ...
- NYOJ 106背包问题
http://acm.nyist.net/JudgeOnline/problem.php?pid=106 背包问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现 ...
- nyoj 106 背包问题
点击打开链接 背包问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v ...
- 背包问题--nyoj题目106
背包问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w< ...
- nyoj 49-开心的小明(动态规划, 0-1背包问题)
49-开心的小明 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:7 submit:11 题目描述: 小明今天很开心,家里购置的新房就要领钥匙了,新房 ...
- NYOJ 49 开心的小明(01背包问题)
时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 小明今天非常开心.家里购置的新房就要领钥匙了,新房里有一间他自己专用的非常宽敞的房间.更让他高兴的是.妈妈昨天对他说: ...
- 拦截导弹 (NYOJ—79) 最长字串问题 (NYOJ—17)
这是到动态规划的题目,属于有顺序的0 1 背包问题: 代码: #include<stdio.h> #include<string.h> ][]; //d[i][j] ]; in ...
- NYOJ 1007
在博客NYOJ 998 中已经写过计算欧拉函数的三种方法,这里不再赘述. 本题也是对欧拉函数的应用的考查,不过考查了另外一个数论基本定理:如何用欧拉函数求小于n且与n互质所有的正整数的和. 记eule ...
随机推荐
- 一个linux的样本分析
不久前收到的一个linux样本,之前linux平台下的样本见得并不多,正好做个记录. 样本启动之后,会将自身重命名拷贝到/usr/bin下,并删除自身,如此处就将自身文件amdhzbenfi命名为us ...
- 廖雪峰js教程笔记7 基本类型和包装类型
在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串: typeof 123; // ' ...
- 【noip2014T3】
上文有提到noip2014还有没A的嘛..就先把这个坑给填了 flappy bird好sad啊 还是先做解方程 八中的数据好强了,然而我最后凑了四个质数就A了,感谢shy! 作为联赛最后一题,学习它的 ...
- TODO软件工程--如何预算项目的工期
我的项目后台接口已经开发好,是前人留下的接口,现在只需要和前端联调,本以为后台的开发周期短,可以提早上线,可以因为旧接口不兼容新的要求 不得不重新写,造成了工期的延误. 如何计算一个工期被提上日程.
- 关于使用rem单位,calc()进行自适应布局
关于css中的单位 大家都知道在css中的单位,一般都包括有px,%,em等单位,另外css3新增加一个单位rem. 其中px,%等单位平时在传统布局当中使用的比较频繁,大家也比较熟悉,不过px单位在 ...
- webpack练手项目之easySlide(三):commonChunks(转)
Hello,大家好. 在之前两篇文章中: webpack练手项目之easySlide(一):初探webpack webpack练手项目之easySlide(二):代码分割 与大家分享了webpack的 ...
- hdu1272 小希的迷宫
Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该 ...
- windows下cmd时复制dos中的内容 错误信息等
16:28 2015/11/23小发现 windows下cmd时复制dos中的内容,错误信息等:鼠标右键选择标记,然后ctrl c 即可.
- Android -- 闹钟服务的使用(启动与停止)
1. 效果图
- BZOJ2322: [BeiJing2011]梦想封印
Description 渐渐地,Magic Land上的人们对那座岛屿上的各种现象有了深入的了解. 为了分析一种奇特的称为梦想封印(Fantasy Seal)的特技,需要引入如下的概念: 每一位魔法的 ...