hdu acm-step 1.3.8 Crixalis's Equipment
Posted mtl6906
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu acm-step 1.3.8 Crixalis's Equipment相关的知识,希望对你有一定的参考价值。
本题题意:蝎子王搬家,洞的空间是V,共有N件物品要搬,每件物品在搬运过程中要占用Bi空间,搬运完后占用Ai,问蝎子王能否搬完所有的物品。
代码如下:
#include <cstdio> #include <algorithm> using namespace std; struct Node { int A,B; bool operator < (const Node &node){if(B-A>node.B-node.A)return true;else if(B - A< node.B - node.A)return false;if(A < node.A)return true;return false;} }; Node a[1000]; int main() { int T; scanf("%d",&T); while(T--) { int V,N; scanf("%d%d",&V,&N); for(int i=0;i<N;i++)scanf("%d%d",&a[i].A,&a[i].B); sort(a,a+N); int sum=0,i; for(i=0;i<N;i++){if(a[i].B > V-sum)break;sum+=a[i].A;} if(i!=N||sum>V)printf("No\\n"); else printf("Yes\\n"); } return 0; }
这道题真的是很难想清楚,后来查了题解才做出来,说是贪心B-A,B-A的含义是需要的预留空间,预留空间大的优先,然后相同情况下取实际空间更小的,可以为后来留更大的空间。
以上是关于hdu acm-step 1.3.8 Crixalis's Equipment的主要内容,如果未能解决你的问题,请参考以下文章
hdu acm-step 2.1.7 Balloon Comes!