您的位置:首页 > 其它

hdu 3177 差排

2013-11-29 00:00 176 查看
要求当前容量是否能把所有东西都放下,且放一个容量少一点。按差值进行排序。

code:

#include <iostream>
using namespace std;
struct thing
{
int aroom;
int broom;
};
int cmp(thing a,thing b)
{
if(a.broom-a.aroom>b.broom-b.aroom)
{
return 1;
}
return 0;
}
int main(int argc, char *argv[])
{
int t;
scanf("%d",&t);
while(t--)
{
int v,n;
scanf("%d%d",&v,&n);
int i;
int flagfang=0;
thing t[1005];
for(i=0;i<n;i++)
{
scanf("%d%d",&t[i].aroom,&t[i].broom);

}
sort(t,t+n,cmp);	//进行差排
for(i=0;i<n;i++)
{
if(t[i].broom>v)
{
flagfang=1;
break;
}
else
{
v-=t[i].aroom;
}
}
if(v<0||flagfang==1)
{
printf("No\n");
}else{
printf("Yes\n");
}
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: