标签:
Crixalis - Sand King used to be a giant scorpion(蝎子) in the deserts of Kalimdor. Though he‘s a guardian of Lich King now, he keeps the living habit of a scorpion like living underground and digging holes. 停放体积 移动体积
第一件物品 a1 b1
第二件物品 a2 b2
假设这两件物品的移动体积都不大于洞的体积V
那么将单独比较两个物品的时候会发现 a1+b2为先放第一件物品 后放第二件物品的最大瞬时体积
a2+b1为先放第二件物品 后放第一件物品的最大瞬时体积
我们应该选择a1+b2和a2+b1中比较小的先放那么从2件物品 扩展到N件物品
假设n件物品的移动体积都不大于洞的体积V(如果有大于的 那么结果必然是NO)
将N件物品按照a1+b2<a2+b1进行排序 然后依次放入洞中,即按照差值从大到小放入洞中
#include <cstdio>
#include <algorithm>
using namespace std;
struct node{
int a,b;
}f[2000];
bool cmp(node m,node n)
{
return m.a+n.b<n.a+m.b;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int v,n,flag=0;
scanf("%d%d",&v,&n);
for(int i=0;i<n;i++)
scanf("%d%d",&f[i].a,&f[i].b);
sort(f,f+n,cmp);
for(int i=0;i<n;i++)
{
if(f[i].b>v)
{
flag=1;
break;
}
else
v-=f[i].a;
}
if(flag)printf("No\n");
else printf("Yes\n");
}
}
标签:
原文地址:http://www.cnblogs.com/xuxueyang/p/4279596.html