HDU.3177Crixalis's Equipment(贪心)
- 题目来源:3177
- 题目分析:一只蝎子要搬动一堆装备到一个容量为V的洞里面,每个装备有两个属性,一个是固有体积A,放置之后洞的剩余空间就会减少A,一个是移动体积B,只有当体积B小于等于当前洞的剩余体积的时候才能放进去。判断能不能把装备都放进去。
0< T<= 10, 0< V<10000, 0< N<1000, 0 < Ai< V, Ai <= Bi < 1000. 我的思路: 首先,采用贪心策略
一开始我是按照移动体积B从大到小排序的,这是错的,因为没有考虑到每次放入装备之后的空间减少的问题。之后加入了空间大小的判断,还是按照B排序,同时剔除移动体积B大于洞的大小V(当时我没想到剩余空间,以为就是个门槛而已)的判断,结果是WA。拿样例来说:
20 3
10 20
3 10
1 7
即洞的体积V是20,有3件装备。
分别是:
属性 | 固有体积(A) | 移动体积(B) |
---|---|---|
第一件 | 10 (A1) | 20 (B1) |
第二件 | 3 (A2) | 10(B2) |
第三件 | 1(A3) | 7(B3) |
如果按照这个顺序放的话,先放第一个,B1<=剩余空间(此时是20),放进去之后洞的体积减少A1,之后放第二个B2<=剩余空间(此时是10),放入之后洞的体积减少A2,最后放第三个,B3<=剩余空间(此时是7),这样就都放进去了。
但是假如换个顺序,先放入A2,之后是A3,A1,就放不进去。
- 扩展到第i个装备和第j个装备:
属性 | 固有体积(A) | 移动体积(B) |
---|---|---|
第i个 | ai | bi |
第i个 | aj | bj |
先放入第i个,需要至少(ai+bj)的空间,那么反过来就需要至少(aj+bi)的空间,那么这种情况下,当然是选择更小的那个,即min(ai+bj,aj+bi);
所以按照应该按照ai+bj从大往小排序。
ai+bj< aj+bi, 按照这个式子不好写,同时根据Ai <= Bi < 1000可知移动体积不小于固有体积,所以移项,同一个装备的放一起, 就变成了
bj-bi< aj-ai 之后排序,再判断,输出结果。
- 完整代码:
#include<stdio.h>
typedef struct
{
int need; //固有体积
int move; //移动体积
}equip;
int main(void)
{
int T; //测试数目
scanf("%d", &T);
int v, n, i, j, flag; //洞的体积v,装备数目n,
equip a[1001], temp;
while (T-- > 0)
{
flag = 1;
scanf("%d%d", &v, &n);
for (i = 0; i < n; i++)
scanf("%d%d",&a[i].need,&a[i].move);
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if ((a[j].move-a[j].need) < (a[j + 1].move-a[j+1].need)) //按照bj-bi< aj-ai排序
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (i = 0; i < n; i++)
{
if (a[i].move > v) //是否超过剩余体积
{
flag = 0;
break;
}
else
{
v -= a[i].need;
}
}
if (flag)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
HDU.3177Crixalis's Equipment(贪心)的更多相关文章
- HDU 4442 Physical Examination(贪心)
HDU 4442 Physical Examination(贪心) 题目链接http://acm.split.hdu.edu.cn/showproblem.php?pid=4442 Descripti ...
- HDU 5835 Danganronpa (贪心)
Danganronpa 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5835 Description Chisa Yukizome works as ...
- HDU 5821 Ball (贪心)
Ball 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5821 Description ZZX has a sequence of boxes nu ...
- hdu 4004 (二分加贪心) 青蛙过河
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4004 题目意思是青蛙要过河,现在给你河的宽度,河中石头的个数(青蛙要从石头上跳过河,这些石头都是在垂 ...
- Saving HDU(hdu2111,贪心)
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU 4714 Tree2cycle:贪心
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4714 题意: 给你一棵树,添加和删除一条边的代价都是1.问你将这棵树变成一个环的最小代价. 题解: 贪 ...
- HDU 5303 Delicious Apples (贪心 枚举 好题)
Delicious Apples Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...
- HDU 5976 Detachment 【贪心】 (2016ACM/ICPC亚洲区大连站)
Detachment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- hdu 5037 Frog(贪心)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5037 题解:为了让放的石头有意义肯定是没l+1的距离放2个也就是说假设现在位置为pos那么 ...
随机推荐
- Murano Service Architecture Introducation
1. Murano Project Mission From the third-party tool developer’s perspective, the application catalog ...
- (转)shell实例浅谈之产生随机数七种方法
一.问题 Shell下有时需要使用随机数,在此总结产生随机数的方法.计算机产生的的只是“伪随机数”,不会产生绝对的随机数(是一种理想随机数).伪随机数在大量重现时也并不一定保持唯一,但一个好的伪随机产 ...
- Java方法-对指定信息基于相关维度进行分组
近期项目中需要针对多种不同来源指定的相同类型内容进行合并,实现过程中需要根据指定的相关维度,对资源内容进行分组,如识别是否可以为同一人员信息,是否为同一个歌曲或影视信息,因此针对实现的具体细节做如下备 ...
- IT方面书籍下载整理
最近翻看Redis相关的中文书籍时,发现了很多错误,包括翻译错误及理论错误,因此想搜集一些相关的外文书籍看看.以下几个链接,内容大同小异,均可免费下载相关的英文书籍PDF版,内容涵盖了IT的方方面面. ...
- lftp 快速使用
登录 lftp username:password@ip:port 设置字符集 set ftp:charset 'gbk' set ftp:charset 'utf-8' 下载文件 mget *.tx ...
- Angularjs ui router,路由嵌套 父controller执行问题
解决方式来源:https://stackoverflow.com/questions/25316591/angularjs-ui-router-state-reload-child-state-onl ...
- Razor,aspx的占位控件(母版页)
1.razor: 母版页中:@*类似master的占位控件*@ @RenderSection("scripts", required: false) 部分页中: @section ...
- 树莓派直连线连接PC
刚入手树莓派一天不到,SSH树莓派一直用的是路由+无线网卡的配置.想到明天就要出差了,本想把树莓派也带去,可宾馆的房间只有一个网口,通常都是兄弟们连接小型无线路由用的,连接树莓派似乎成了一个难题.于是 ...
- hystrix应用介绍(四)
前几章已经讲了hystrix的应用场景,以及如何使用,本章我们针对如何进行hystrix参数配置做一些分析 //异步的执行 @HystrixCommand(groupKey = "testK ...
- poj 3345 树形DP 附属关系+输入输出(好题)
题目连接:http://acm.hust.edu.cn/vjudge/problem/17665 参考资料:http://blog.csdn.net/woshi250hua/article/detai ...